很多时候我必须运行此查询:
select * from users where name is not null and name != ''
有没有更好的方法来做到这一点。我需要更多的表现,任何建议。我想这很常见,所以可能会有一些类似
的编译函数select * from users where name is present()
使用PostgreSQL 9版本。
答案 0 :(得分:4)
对于任何x
,null != x
将null
而null
不是true
。这意味着您可以在您的情况下简单地忽略NULL并说:
select * from users where name != ''
如果您更清楚,也可以使用COALESCE将NULL转换为空字符串:
select * from users where coalesce(name, '') != ''
当然coalesce
来电不是免费的。
答案 1 :(得分:0)
您可以使用NULLIF:
SELECT *
FROM USERS
WHERE NULLIF(NAME,'') IS NOT NULL