sql-server-2008 – 由于变量为NULL而避免IF ELSE
发布时间:2020-12-12 06:05:06 所属栏目:MsSql教程 来源:网络整理
导读:我有一些代码,其中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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |