为 Postgres 中提取的列列表中的值创建数组

2024-04-16

我有以下一组表:

id   column_a  column_b   column_c
1     t          f           t
2     t          f           f
3     f          t           f

当查询时:

SELECT bool_or(column_a) AS column_a
     , bool_or(column_b) AS column_b
     , bool_or(column_c) AS column_c
FROM   tbl
WHERE  id IN (1,2);

结果如下:

column_a   column_b   column_c
 t          f            t

我想从结果中获取数组:[t,f,t]在 Postgres 中。

请参考之前的堆栈问题here https://stackoverflow.com/questions/40415401/aggregate-boolean-values-to-true-if-any-of-the-source-columns-is-true/40415454.


Use an 数组构造函数 https://www.postgresql.org/docs/current/static/sql-expressions.html#SQL-SYNTAX-ARRAY-CONSTRUCTORS:

SELECT ARRAY [bool_or(column_a)
            , bool_or(column_b)
            , bool_or(column_c)] AS arr_abc
FROM   tbl
WHERE  id IN (1,2);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 Postgres 中提取的列列表中的值创建数组 的相关文章

随机推荐