gpt4 book ai didi

sql - IS NULL 和 IS NOT DISTINCT FROM NULL 之间有区别吗?

转载 作者:行者123 更新时间:2023-11-29 11:42:16 24 4
gpt4 key购买 nike

value IS NULLvalue IS NOT DISTINCT FROM NULL 之间有区别吗?

每个 SQL 方言都一样吗?

最佳答案

IS NOT DISTINCT FROM 谓词是 SQL 标准 (SQL:2003) 的一部分
然而,它还没有被所有的 DBMS 完全采用。
实际上,只有几个……好吧,PostgreSql 有。

你可以把它看作是一个“NULL tolerant equal”

比较:

(1 = 1)  --> true
(1 = 0) --> false
(1 = null) --> unknown/null
(null = null) --> unknown/null

(1 IS NULL) --> false
(null IS NULL) --> true

(1 IS NOT DISTINCT FROM 1) --> true
(1 IS NOT DISTINCT FROM 0) --> false
(1 IS NOT DISTINCT FROM null) --> false
(null IS NOT DISTINCT FROM null) --> true

那么 IS NULLIS NOT DISTINCT FROM 之间的主要区别是什么?
基本上,IS NULL 用于检查元素是否为空。
IS NOT DISTINCT FROM 比较 2 个元素。

然后在 WHERE 子句中使用:

WHERE (x IS NOT DISTINCT FROM y)

有标准 SQL 替代方案:

WHERE (x = y OR (x IS NULL AND y IS NULL))

关于sql - IS NULL 和 IS NOT DISTINCT FROM NULL 之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58997907/

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