避免 IF ELSE 由于变量为 NULL [英] Avoiding IF ELSE due to variable been NULL
本文介绍了避免 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屋!
查看全文