如何使用 SQL Server 返回不在表中的 id
Posted
技术标签:
【中文标题】如何使用 SQL Server 返回不在表中的 id【英文标题】:How to return ids that are not in the table using SQL Server 【发布时间】:2015-12-08 08:33:42 【问题描述】:我想检查表中是否存在 ID,然后使用 SQL Server 从 where 子句返回表中不存在的 ID。
这是我的 SQL 查询,
select <columname>
from tablename
where ID in (10, 20, 30, 40, 100, 200)
如果表中存在 20 和 30,则输出应返回 10,40,100,200
请帮帮我!
【问题讨论】:
【参考方案1】:你可以使用LEFT JOIN
:
SELECT sub.ID
FROM (SELECT 10 AS id
UNION ALL SELECT 20
UNION ALL SELECT 30
UNION ALL SELECT 40
UNION ALL SELECT 100
UNION ALL SELECT 200) AS sub
LEFT JOIN tablename t
ON sub.id = t.id
WHERE t.id IS NULL;
如果需要,您可以使用VALUES ()
或表值参数更改子查询。
【讨论】:
以上是关于如何使用 SQL Server 返回不在表中的 id的主要内容,如果未能解决你的问题,请参考以下文章
如何计算两个日期之间的月数和天数,而不在 SQL Server 中返回负值
如何使用 DB2 sql 检查不在两个表中的记录以获取另一个第三个表中的日期?