gpt4 book ai didi

mysql - SQL 案例给出不一致的结果

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

我从以下两个 SQL 查询中得到不一致的结果。

查询 1:select (case when 'Abc' = null then 1 else 0 end) from dual

查询 2:select (case when ('Abc' <> null) then 1 else 0 end) from dual

两个查询的结果相同,即 0

我错过了什么吗?

注意::我知道我可以使用 IS NULL and IS NOT NULL但我的问题是为什么上述查询的结果不一致。

编辑:从@ppeterka 的回答中添加。

select (case when null = null then 1 else 0 end) from dual

返回 0也。 Null 甚至不等于它自己。

但是这会返回什么?

select (case when null <> null then 1 else 0 end) from dual

0再次

SQLFiddle link

最佳答案

因为 NULL 是未知的,所以结果是 0。当您想要比较列或值是否为 null 时,请使用 IS NULLIS NOT NULL

select (case when 'Abc' IS null then 1 else 0 end) from dual       -- 0
select (case when ('Abc' IS NOT null) then 1 else 0 end) from dual -- 1

关于mysql - SQL 案例给出不一致的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15567391/

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