空安全等于比较

问题描述 投票:0回答:1

SQLite 3.27:

有没有办法编写一个表达式,将

null
null
进行比较,结果为 true?

例如:

with data (a,b) as (
values
(1,1),
(1,null),
(null,null)
)

select
  *
from
  data
where
  a = b

但结果是:

     a       b
------  ------
     1       1
(null)  (null)

代替:

     a       b
------  ------
     1       1

db<>小提琴

sql sqlite null equality
1个回答
1
投票

看起来答案是

使用

IS
代替
=
:

with data (a,b) as (
values
(1,1),
(1,null),
(null,null)
)

select
  *
from
  data
where
  a is b

结果:

     a       b
------  ------
     1       1
(null)  (null)

db<>小提琴


相关:

我没有新版本的 SQLite 可供测试。但

is
语法可能在新版本中不起作用。也许只有
IS NOT DISTINCT FROM
语法适用于较新版本的 SQLite。

© www.soinside.com 2019 - 2024. All rights reserved.