2011-08-12 52 views
3

我開始學習SQL。我使用SQL Server Management Studio來編寫我的查詢。我不認爲我可以過濾一個包含給定值的字段(例如:產品A,產品A(成本),產品B,產品B(成本)),所以在這種情況下我可以過濾掉包含「(cost)」的值。我已經到了以下查詢,但它的失敗。你能告訴我爲什麼嗎。篩選包含值的字段

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

http://msdn.microsoft。 com/de-de/library/ms187787.aspx –

回答

3

要排除有成本的結果:

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

N'CONTAIN [(cost)]'是一個字符串文字,你不能把喜歡contain功能在裏面。

試試這個:

where billing_code_desc not like '%(cost)%' 
1
WHERE NOT(CONTAINS(billing_code_desc, N'cost')) 

應該解決您的問題。

1

如果你想過濾出有billing_code_desc(cost)行,那麼你應該做的

AND CONTAINS(billing_code_desc, '(cost)') 

contains

+0

OP想要過濾OUT(成本) –

1

嘗試:

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