我有一张包含一些数据的表格A:
name
------
a
b
d
我有一个名单('a', 'b', 'c', 'e'
)列表,我希望从中获取那些不在表中的值。我怎样才能做到这一点?我有哪些选择?这当然不起作用:
SELECT value FROM ('a', 'b', 'c', 'e') WHERE value NOT IN (SELECT name FROM A)
在此示例中,预期结果为:
value
------
c
e
答案 0 :(得分:2)
您可以使用union
构建临时表,然后加入
select tmp.name
from
(
select 'a' as name
union all
select 'b'
union all
select 'c'
union all
select 'e'
) tmp
left join your_table t on t.name = tmp.name
where t.name is null
如果您有多个值,我建议将这些值放入真实表中,然后加入它。
答案 1 :(得分:0)
转到下面给出的链接你将获得SPLIT功能,只需创建此功能它也将用于未来的开发。 How to split string and insert values into table in SQL Server
之后,执行以下查询。
SELECT *
into #temp
FROM [dbo].Split('a,b,c,e', ',')
select * from #temp where item not in (select * from A)
drop table #temp