繁体   English   中英

使用查询 postgresql 在多列中搜索不 null 条件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM