我想检查表中是否存在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
请帮帮我一个人!
答案 0 :(得分:0)
您可以使用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 ()
或表值参数更改子查询。