2014-10-20 89 views
0

我的問題:TSQL情況下用或它

在我的WHERE語句「Shock.Comment」是爲空的。 我想達到的效果是,如果該參數

@missingComments = 1

的話,我想有串空或空所有的衝擊。 我曾嘗試:

WHERE Shock.Comment = CASE WHEN @missingComments = 1 THEN '' OR IS NULL END 

我怎樣才能與評論= null或當

@missingComments = 1

+0

'@ missingComment'不是1時該怎麼辦? – RBarryYoung 2014-10-20 14:28:41

+0

應該跳過這裏哪裏聲明。但問題是,我不能同時有'或者是NULL它說錯誤。 – Tan 2014-10-20 14:29:33

回答

2

這是一種方式:

WHERE ( (@missingComments != 1) 
     OR (COALESCE(Shock.Comment, '') = '') 

注意,當用靜態SQL查詢的任何答案,這將無法使用任何索引上Shock.Comment以提高性能。

0

CASE非常挑剔空的所有帖子,並能」 t評估爲BIT,並且您不能執行v = A OR B,則必須執行v = A OR v = B。這是我想出的解決方案。

WHERE @missingComment = 0 OR (Shock.Comment = NULL OR Shock.Comment = '')