比较 SQL Server 中的 NULL 值
在 SQL Server 中,处理查询中的可为空值可能具有挑战性。考虑这样一种情况:WHERE 子句中使用的变量可能为 NULL,从而导致需要使用 IF ELSE 语句进行条件查询。但是,可以在单个查询中优雅地处理此类情况。
使用 EXISTS 进行 NULL 比较
您可以使用 EXISTS,而不是使用条件方法运算符有效比较 NULL 值:
SELECT * FROM Customers WHERE EXISTS ( SELECT OrderID INTERSECT SELECT @OrderID );
此查询有效执行以下操作步骤:
因此,如果 @OrderID 为 NULL,则查询将返回 OrderID 也为 NULL 的行,无论数据类型如何。如果 @OrderID 具有非 NULL 值,则查询将返回 OrderID 与该值匹配的行。
其他资源
进一步了解查询计划中的相等比较,请参阅文章“未记录的查询计划:相等比较”。
以上是EXISTS 和 INTERSECT 如何高效处理 SQL Server 查询中的 NULL 值比较?的详细内容。更多信息请关注PHP中文网其他相关文章!