gpt4 book ai didi

PostgreSQL - 查找两个值的相等性,这两个值都可以是 NULL

转载 作者:行者123 更新时间:2023-11-29 12:50:50 25 4
gpt4 key购买 nike

在 PostgreSQL 中,NULL 不被认为等于任何东西,因此 NULL = NULL 返回 false。我正在编写一个查询,其中一个 WHERE 条件检查两个值是否相等。如果两个值都是 NULL,我希望它像任何其他值比较一样返回 true。目前我这样做:

SELECT foo
FROM bar
WHERE baz = qux
OR (baz IS NULL AND qux IS NULL);

有没有更好的办法?

最佳答案

您可以使用 null 安全相等比较 IS NOT DISTINCT FROM:

SELECT foo
FROM bar
WHERE baz IS NOT DISTINCT FROM qux;

这是一个简短的演示,显示当 IS NOT DISTINCT FROM 的两侧都是相同的非 NULL 值,或者两者都是 时返回记录空:

Demo

关于PostgreSQL - 查找两个值的相等性,这两个值都可以是 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54405745/

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