【发布时间】:2017-12-11 09:57:37
【问题描述】:
我正在使用SQL Server 2014,我有一个简单的T-SQL 查询(如下所示)及其相应的输出。
use mydatabase
select *
from Table1
where ID in (101, 102, 103)
输出如下(表示表1中不存在ID 102):
ID Age
101 46
103 50
我希望输出如下:
ID Age
101 46
102 0
103 50
当查找表中的 ID 不匹配时,输出会忽略这些 ID。如何更改我的 T-SQL 查询以确保也输出不匹配的 ID,但输出为零。
【问题讨论】:
-
还有没有其他表格可以存储您的所有身份证件?
-
ID 是数据库中不同表中的主键,但我没有保存所有 IDS 的表。
-
因此,如果您没有 ID 表,您如何知道哪些 ID 是实际 ID,以及来自
Table1的“缺失”。 -
@Larnu 为简化起见,我有一个 ID 列表(我已经知道它存在于另一个表中,我们称之为 Table0),我需要对照 Table1 进行检查。由于 ID 102 不在输出中,这意味着它在 Table1 中不存在。
-
您首先需要确定序列中缺少哪些数字(请参阅此链接:stackoverflow.com/a/1057423/100283),然后您可以加入两个数据存储,然后只需使用合并函数返回零,如果没有匹配项。
标签: sql-server tsql