【问题标题】:Can ANY check for IS NOT NULL for an Array in PostgreSQL?可以检查 PostgreSQL 中数组的 IS NOT NULL 吗?
【发布时间】:2014-04-09 20:57:31
【问题描述】:

我有一个这样的查询,按一列分组,并检查是否有任何记录在不同的列中有数据:

SELECT
  bar,
  MAX(CASE WHEN baz IS NOT NULL THEN 1 ELSE 0 END)::BOOLEAN as baz_has_data
FROM
  foos
GROUP BY
  bar

我觉得这有点神秘,我认为使用 ANYARRAY_AGG 会更清楚。不幸的是,我找不到任何同时包含IS NOT NULLANY(ARRAY_AGG ...) 的示例。这可能吗?

【问题讨论】:

    标签: sql postgresql null boolean aggregate-functions


    【解决方案1】:

    有一个专门的聚合函数:bool_or():

    SELECT bar, bool_or(baz IS NOT NULL) AS baz_has_data
    FROM   foos
    GROUP  BY 1;
    

    如果组中至少有一行具有非空值,则返回 TRUE

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 2012-09-09
      • 1970-01-01
      相关资源
      最近更新 更多