问题与NOT LIKE

时间:2014-09-26 09:01:06

标签: sql sql-like sql-server-ce-4

我有一张表格如下:

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

2 个答案:

答案 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%' 
       )