gpt4 book ai didi

sql - 使用 IN 关键字查询

转载 作者:行者123 更新时间:2023-12-01 23:20:54 25 4
gpt4 key购买 nike

我正在学习如何编写 TSQL 查询。我试图深入了解它们。我从教程中获得的这个查询要求我检查第二个 WHERE 子句中的 NOT NULL。

SELECT *
FROM Person.Person AS p
WHERE NOT p.BusinessEntityID IN (
SELECT PersonID
FROM Sales.Customer
WHERE PersonID IS NOT NULL);

现在表 Sales.Customer 的 PersonID 有一些 NULL 值。如果我在子查询中删除此 WHERE 子句,则不会返回任何结果。在我对此事的明显错误思考中,我认为如果子查询返回 NULL,它根本不满足外部查询中 WHERE 子句的条件。我希望获得具有非 NULL 的 PersonID 的行的结果集。为什么根据这个推理它不起作用?

最佳答案

了解 SQL Server 如何处理 NULL 值对于新手来说可能很困难。 NULL 值表示该值未知。 NULL 值不同于空值或零值。没有两个空值是相等的。两个 null 值之间或 NULL 与任何其他值之间的比较返回未知,因为每个 NULL 的值都是未知的。

Null Values

关于sql - 使用 IN 关键字查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22489042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com