如果变量为NULL,则返回所有数据

时间:2014-11-06 18:07:40

标签: sql

我正在尝试编写一个基于用户输入变量(@VariantID)返回数据的查询。

WHERE sod.ProductVariantID = @VariantID

问题是如果@VariableID为NULL,我想返回所有数据,无论sod.ProductVariantID等于什么。

这样做的最佳方式是什么?

2 个答案:

答案 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