我正在尝试编写一个基于用户输入变量(@VariantID)返回数据的查询。
WHERE sod.ProductVariantID = @VariantID
问题是如果@VariableID为NULL,我想返回所有数据,无论sod.ProductVariantID等于什么。
这样做的最佳方式是什么?
答案 0 :(得分:6)
使用OR
条件,检查NULL
值或相等条件=
。
WHERE @VariantID is NULL OR sod.ProductVariantID = @VariantID
答案 1 :(得分:0)
如果是SQL Server,您可以使用ISNULL替代@RADAR答案。
WHERE sod.ProductVariantID = ISNULL(@VariantID,sod.ProductVariantID)
根据查询的上下文,首选使用控制语句,例如:
IF @VariantID IS NULL
SELECT ...
ELSE
SELECT ... WHERE sod.ProductVariantID = @VariantID