PostgreSQL 比较

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

我很困惑为什么这里的结果是 TRUE

select 'Clark' in ('Dave', null, 'Clark');

但这里不是假的

select 'Ava' not in ('Dave', null, 'Clark');

有人可以解释一下吗?

sql postgresql comparison
1个回答
0
投票

我们可以将第二个查询重写为:

select 'Ava' not in ('Dave', null, 'Clark');
select not ('Ava' = 'Dave' OR 'Ava' = null OR 'Ava' = 'Clark')

'Ava' = null
unknown,其计算结果为 false,因此整个
IN
表达式为 false,而使用
not
则变为 true。

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