我正在尝试根据 WHERE-IN 列表收集两个相反的列表。抱歉,如果该术语不正确,但至少在帖子中保持一致。
WHERE name IN ('name1')
我有一个 select 语句,它可以使用 WHERE-IN 告诉数据库中是否列出了某个名称。
-- working
SELECT name FROM name_list
WHERE name IN ('name1','name2','name3','name4')
这个结果只告诉我来自 name_list 中的 WHERE-IN 列表的名称,这是我想要的前半部分。
接下来,我想查看 WHERE-IN 列表中的哪些名称不在 name_list 中。我尝试使用 WHERE-NOT IN,但这给了我 name_list 中不在我的 WHERE-IN 列表中的所有名称。
-- NOT working
SELECT name FROM name_list
WHERE name NOT IN ('name1','name2','name3','name4')
我知道一些 ssms 基础知识,但我过去处理过的所有搜索都是查看数据库表中项目的结果,而我现在正在寻找表中没有的结果。任何帮助将不胜感激。
所需输出的示例是:
search result 1 (name found)
name1
name2
name4
search result 2 (name not found)
name3
创建一个临时表,并从 csv 文件或使用下面的 Insert 语句在表中插入名称:
INSERT INTO temp_name_list (name) VALUES ('name1');
.
.
INSERT INTO temp_name_list (name) VALUES ('nameN');
并使用以下查询来获取结果:
select temp_nl.name
From temp_name_list temp_nl
LEFT JOIN name_list nl
on temp_nl.name=nl.name
WHERE nl.name IS NULL;