我有一些代码,其中 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)
会有效地做到这一点。
See 未记录的查询计划:相等比较 http://web.archive.org/web/20180422151947/http://sqlblog.com:80/blogs/paul_white/archive/2011/06/22/undocumented-query-plans-equality-comparisons.aspx了解更多相关信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)