簡體   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