我需要查找数据库中不存在 WHERE IN 子句中的哪些项目。在下面的示例中 cc33 不存在,我需要查询以返回 cc33。我该怎么做?
SELECT id FROM tblList WHERE field1 IN ('aa11','bb22','cc33')
我需要查找数据库中不存在 WHERE IN 子句中的哪些项目。在下面的示例中 cc33 不存在,我需要查询以返回 cc33。我该怎么做?
SELECT id FROM tblList WHERE field1 IN ('aa11','bb22','cc33')
您需要将值放入表格而不是列表中:
with list as (
select 'aa11' as val union all
select 'bb22' union all
select 'cc33'
)
select l.val
from list l left outer join
tbllist t
on l.val = t.field1
where t.field1 is null
对于 2008+ 的 SQl-Server 版本,您可以使用表值构造函数:
SELECT field1
FROM
( VALUES
('aa11'),('bb22'),('cc33')
) AS x (field1)
WHERE field1 NOT IN
( SELECT field1 FROM tblList ) ;