我最近正在对包含字符串,空字符串和null的数据列运行查询。 我想保留空字符串以外的所有东西,所以自然地我做了类似的事情
select tocolumn from table where fromcolumn='abc'
但是我发现这也删除了我的null。 :(
我摸了一下,发现了
WHERE my_row <> ''
但是
SELECT NULL = '' -- Returns False. No surprise here
有人可以向我解释吗?
答案 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