避免 IF ELSE 由于变量为 NULL [英] Avoiding IF ELSE due to variable been NULL

查看:119
本文介绍了避免 IF ELSE 由于变量为 NULL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些代码,其中 WHERE 子句中使用的变量可以为空.因此,我必须使用 IF ELSE 查询数据以检查 NULL.有没有写在一个查询中?

I have some code where variable used in the WHERE clause could be nullable. As a result I have to query data using IF ELSE to check for NULL. Is there anyway of writing in in one query?

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)

将有效地做到这一点.

未记录的查询计划:平等比较 了解更多相关信息.

See Undocumented Query Plans: Equality Comparisons for more about this.

这篇关于避免 IF ELSE 由于变量为 NULL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆