SSMS中NOT IN的替代方法

毛圈

我有这种结构的桌子。我试图找到单词中没有出现的所有唯一ID。如何在MS SQL Server中实现此目的。

id word
1  hello
2  friends
2  world
3  cat
3  dog
2  country
1  phone
4  eyes

我有一个词表

**List**

phone 
eyes
hair
body

预期产量

除了列表中的单词,我还需要所有唯一的ID。在这种情况下,

2
3


I&4不在输出中,因为它们的单词出现在列表中

我尝试了以下代码

Select count(distinct ID)
from Table1
where word not in ('phone','eyes','hair','body')

我尝试了不存在也没有用

哈桑·马哈茂德(Hasan Mahmood)

您也可以尝试:这是一个动态表结构:

DECLARE @T AS TABLE (id int, word varchar(20))
INSERT INTO @T VALUES
(1, 'hello'),
(2, 'friends'),
(2, 'world'),
(3, 'cat'),
(3, 'dog'),
(2, 'country'),
(1, 'phone'),
(4, 'eyes')

DECLARE @tblNotUsed AS TABLE ( id int, word varchar(20))
DECLARE @tblNotUsedIds AS TABLE (id int)

INSERT INTO @tblNotUsed VALUES
(1, 'phone'),
(2, 'eyes'),
(3, 'hair'),
(4, 'body')

INSERT INTO @tblNotUsedIds (id) 
SELECT [@T].id FROM @T INNER JOIN @tblNotUsed ON [@tblNotUsed].word = [@T].word

SELECT DISTINCT id FROM @T 
WHERE id NOT IN (SELECT id FROM @tblNotUsedIds)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章