2014-11-06 60 views
1

我試圖編寫一個基於用戶輸入變量(@VariantID)返回數據的查詢。如果變量爲NULL,則返回所有數據

WHERE sod.ProductVariantID = @VariantID 

的問題是,如果@VariableID爲NULL,我想返回所有數據,而不管什麼sod.ProductVariantID等於。

這樣做的最好方法是什麼?

+0

SQL的任何特殊味道? – 2014-11-06 18:30:12

回答

6

使用OR條件,檢查NULL值或相等條件=

WHERE @VariantID is NULL OR sod.ProductVariantID = @VariantID 
0

如果這是SQL Server,您可以使用ISNULL作爲替代@RADAR答案。

WHERE sod.ProductVariantID = ISNULL(@VariantID,sod.ProductVariantID) 

根據您的查詢的上下文更喜歡使用一個控制語句,如:

IF @VariantID IS NULL 
    SELECT ... 
ELSE 
    SELECT ... WHERE sod.ProductVariantID = @VariantID 
相關問題