1
我試圖編寫一個基於用戶輸入變量(@VariantID)返回數據的查詢。如果變量爲NULL,則返回所有數據
WHERE sod.ProductVariantID = @VariantID
的問題是,如果@VariableID爲NULL,我想返回所有數據,而不管什麼sod.ProductVariantID等於。
這樣做的最好方法是什麼?
我試圖編寫一個基於用戶輸入變量(@VariantID)返回數據的查詢。如果變量爲NULL,則返回所有數據
WHERE sod.ProductVariantID = @VariantID
的問題是,如果@VariableID爲NULL,我想返回所有數據,而不管什麼sod.ProductVariantID等於。
這樣做的最好方法是什麼?
使用OR
條件,檢查NULL
值或相等條件=
。
WHERE @VariantID is NULL OR sod.ProductVariantID = @VariantID
如果這是SQL Server,您可以使用ISNULL作爲替代@RADAR答案。
WHERE sod.ProductVariantID = ISNULL(@VariantID,sod.ProductVariantID)
根據您的查詢的上下文更喜歡使用一個控制語句,如:
IF @VariantID IS NULL
SELECT ...
ELSE
SELECT ... WHERE sod.ProductVariantID = @VariantID
SQL的任何特殊味道? – 2014-11-06 18:30:12