加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

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

发布时间:2021-02-23 16:35:43 所属栏目:编程 来源:网络整理
导读:我有一些代码,其中WHERE子句中使用的变量可以为空.因此,我必须使用IF ELSE查询数据以检查NULL.无论如何在一个查询中写入? DECLARE @OrderID UNIQUEIDENTIFIERIF @OrderID IS NULL BEGIN SELECT * FROM Customers WHERE OrderID IS NULLENDELSEBEGIN SELECT *

我有一些代码,其中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.

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读