排除 WHERE 子句中的空白值和空值



很多时候我必须运行这个查询:

select * from users where name is not null and name != ''

有没有更好的方法可以做到这一点。我需要更多的性能,任何建议。我想这很常见,所以可能有一些编译函数

会像
select * from users where name is present()

使用 PostgreSQL 9 版本。

对于任何xnull != x 将被nullnulltrue。这意味着您可以简单地忽略您情况下的 NULL 并说:

select * from users where name != ''

您也可以使用 COALESCE 将 NULL 转换为空字符串,如果您更清楚的话:

select * from users where coalesce(name, '') != ''

当然,coalesce通话不是免费的。

演示:http://sqlfiddle.com/#!2/e810c/2

您可以使用 NULLIF:

SELECT  * 
FROM    USERS 
WHERE   NULLIF(NAME,'') IS NOT NULL

相关内容

  • 没有找到相关文章

最新更新