2014-03-25 50 views
0

我試圖讓所有的物品,如果參數@ItemId = 0其他item = @ItemId一個項目如何在Sql Server中查詢條件where子句?

這裏是我做了什麼

... AND (CASE WHEN @ItemId = 0 THEN Items.ItemID > 0 else 
     Items.ItemID = @ItemId end) 

SQL SERVER在此查詢給出了一個錯誤。

+0

而你的錯誤是...? – 2014-03-25 14:34:55

+0

這只是一個普遍的錯誤,像''語法附近>' – Lakhae

回答

1

達到你所描述的邏輯:

... 
AND (@ItemId = 0 OR Items.ItemID = @ItemID) 

請注意,您的查詢意味着別的東西,你可以做到這樣的:

... 
AND ((@ItemId = 0 AND Items.ItemID > 0) OR (Items.ItemID = @ItemID) 
+0

我試圖獲取所有的項目,如果參數爲零,否則讓我只有一個項目,即等於參數。 – Lakhae

+0

這是我給出的第一個問題。所以你的示例查詢中的Items.ItemID> 0'組件是一個紅鯡魚? – 2014-03-25 14:54:33