sql-server-2008 – 由于变量为NULL而避免IF ELSE

前端之家收集整理的这篇文章主要介绍了sql-server-2008 – 由于变量为NULL而避免IF ELSE前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些代码,其中WHERE子句中使用的变量可以为空.因此,我必须使用IF ELSE查询数据以检查NULL.无论如何在一个查询中写入?
DECLARE @OrderID UNIQUEIDENTIFIER

IF @OrderID IS NULL 
BEGIN
    SELECT * 
    FROM Customers
    WHERE OrderID IS NULL
END
ELSE
BEGIN
    SELECT * 
    FROM Customers
    WHERE OrderID = @OrderID
END

解决方法

SELECT * 
  FROM Customers
  WHERE EXISTS (SELECT OrderID INTERSECT SELECT @OrderID)

会有效地做到这一点.

有关详细信息,请参阅Undocumented Query Plans: Equality Comparisons.

猜你在找的MsSQL相关文章