我有一张表格如下:
ItemID
BrandID
数据如下(我实际上加入了另一个表来获取Brand文本,但为了简洁起见,我将它们放在同一个表中
ItemID Brand
1 Test
1 Test2
1 stuff
2 test
3 guy
4 girl
5 rest
我做了一个包含搜索术语' es'如下:
SELECT DISTINCT(ItemID) FROM Items WHERE Brand LIKE '%es%'
返回Items(1,2,5)。
我现在想做一个不包含哪些应该返回Items(3,4)但是查询
SELECT DISTINCT(ItemID) FROM Items WHERE Brand NOT LIKE '%es%'
还会返回第1项,因为第3项不包含' es'
所以我的问题:
如何执行Not Contains,以确保它只返回没有任何记录包含给定字符串的项目?
我希望我已经明确表达了这一点。
我正在使用SqlServer Ce 4.0
答案 0 :(得分:1)
SELECT DISTINCT(ItemID) FROM Items WHERE Brand NOT LIKE '%es%'
EXCEPT
SELECT DISTINCT(ItemID) FROM Items WHERE Brand LIKE '%es%'
答案 1 :(得分:1)
SELECT DISTINCT(ItemID)
FROM Items
WHERE ItemID NOT IN
(
SELECT ItemID
FROM Items
WHERE Brand LIKE '%es%'
)