[英]searching not null condition in multiple columns with query postgresql
我想计算在 field1、field2、field3 和 field4 中有多少没有日期的文档。 我创建了如下查询,但它看起来并不好。
select
count(doc)
where true
and field1 is not null
and field2 is not null
and field3 is not null
and field4 is not null
如何为多个列应用一个过滤器?
提前致谢。
您当前的查询没有任何问题,这可能是我将在这里使用的。 但是,您可以在这里使用COALESCE
技巧:
SELECT COUNT(*)
FROM yourTable
WHERE COALESCE(field1, field2, field3, field4) IS NOT NULL;
这是因为对于至少分配给非NULL
日期的四个字段之一的任何记录将无法通过IS NOT NULL
检查。 只有所有四个字段都是NULL
的记录才会匹配。
请注意,这会计算具有至少一个非NULL
字段的记录。 相反,如果您想计算所有四个字段都是NULL
的记录,请使用:
SELECT COUNT(*)
FROM yourTable
WHERE COALESCE(field1, field2, field3, field4) IS NULL;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.