postgres:为什么SELECT NULL <>''返回FALSE?

时间:2020-01-08 16:44:46

标签: postgresql null

我最近正在对包含字符串,空字符串和null的数据列运行查询。 我想保留空字符串以外的所有东西,所以自然地我做了类似的事情

select  tocolumn from table where fromcolumn='abc'

但是我发现这也删除了我的null。 :(

我摸了一下,发现了

WHERE my_row <> ''

但是

SELECT NULL = ''  -- Returns False. No surprise here

有人可以向我解释吗?

1 个答案:

答案 0 :(得分:1)

每当对NULL执行标准比较运算符时,结果为FALSE,NOT TRUE或NULL。

如果要对其中包含NULL的列进行比较,则可以使用IS [NOT] DISTINCT FROM代替=<>,它将把NULL视为一个值。

我使用了以下内容,它删除了我的空字符串而不删除我的NULL

WHERE my_row IS DISTINCT FROM ''

https://www.postgresql.org/docs/current/functions-comparison.html