过滤包含值的字段

时间:2011-08-12 13:09:26

标签: sql-server

我开始学习SQL。我正在使用SQL Server Management Studio来编写我的查询。我知道我可以过滤包含给定值的字段(例如:产品A,产品A(产品),产品B,产品B(成本))所以在这种情况下我可以过滤掉包含“(成本)”的值。我已经到达以下查询但它失败了。你能告诉我原因吗?

SELECT     billing_code, billing_code_desc
FROM         dbo.jm_billing_code
WHERE     (NOT (billing_code_desc = N'CONTAIN [(cost)]'))
ORDER BY billing_code

5 个答案:

答案 0 :(得分:4)

N'CONTAIN [(cost)]'是字符串文字,您不能在其中放置contain等函数。

请改为尝试:

where billing_code_desc not like '%(cost)%'

答案 1 :(得分:3)

要排除有成本的结果:

 SELECT     billing_code, billing_code_desc
    FROM         dbo.jm_billing_code
    WHERE     billing_code_desc NOT LIKE '%(cost)%'
    ORDER BY billing_code

答案 2 :(得分:1)

WHERE NOT(CONTAINS(billing_code_desc, N'cost'))

应该解决你的问题。

答案 3 :(得分:1)

如果您要对(cost)billing_code_desc的行进行过滤,那么您应该

AND CONTAINS(billing_code_desc, '(cost)')

请参阅contains

答案 4 :(得分:1)

尝试:

SELECT billing_code, billing_code_desc FROM dbo.jm_billing_Code 
WHERE billing_code_desc NOT LIKE '%(Cost)%' 
ORDER BY billing_code