gpt4 book ai didi

sql - SQL 未知是否与 NULL 相同?

转载 作者:行者123 更新时间:2023-12-03 20:18:22 31 4
gpt4 key购买 nike

我很困惑 UNKNOWN 在 SQL 中的 3 值逻辑中意味着什么。它实际上意味着NULL吗? NULL 和 UNKNOWN 是否可以在所有 bool 上下文中互换?

最佳答案

简单回答:

3 == 2 => FALSE
3 == 3 => TRUE
NULL == 3 => UNKNOWN
3 == NULL => UNKNOWN
NULL == NULL => UNKNOWN

NULL 表达在任一侧或两侧评估为 UNKNOWN .

例如,如果您有一张 table :
Employees(id, country)
1, USA
2, USA
3, Canada
4, NULL

假设您的老板要求您选择所有不在美国居住的员工。你写:
select * from Employees
where country <> 'USA'

并得到:
3, Canada

为什么不选择4?因为在 WHERE子句仅返回表达式计算结果为 TRUE 的行:
1. USA <> 'USA' => FALSE -- don't return this row
2. USA <> 'USA' => FALSE -- don't return this row
3. CANADA <> 'USA' => TRUE -- return this row
4. NULL <> 'USA' => UNKNOWN -- don't return this row

它不仅是为了平等或不平等。对于任何 predicate

关于sql - SQL 未知是否与 NULL 相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41180547/

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