回答

收藏

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

技术问答 技术问答 221 人阅读 | 0 人回复 | 2023-09-14

我有以下几张表:
: @* p( Y% {( t1 i  f, a9 Gid   column_a  column_b   column_c# i- h$ ^( `, @# u3 W5 H; [
1     t          f           t
# r* Q9 G+ U, I9 [0 F2     t          f           f
, n' F2 z9 U- p9 T  z3     f          t           f3 e" f1 _& w$ [2 B0 x1 M
由以下哪个查询:" ?0 U+ b1 m$ L. w
SELECT bool_or(column_a) AS column_a
. Z* r/ f6 k/ y) E/ G; o% J     , bool_or(column_b) AS column_b
/ l8 `2 r* @4 U1 n     , bool_or(column_c) AS column_c
$ \/ i" `' |( E( C$ }FROM   tbl
& S! Y1 F$ g; p3 h8 FWHERE  id IN (1,2);3 i& ?9 m7 o5 l* F- d9 M8 h7 F
给出的结果为:
+ M' `% v3 H7 mcolumn_a   column_b   column_c
1 s$ \: J0 h; } t          f            t- O, R* Q  `2 H! P, t
我想从结果中获取数组为:[t,f,t]在Postgres中。
8 M$ |  Y8 e$ V/ V, ]                + P# p% H/ h% o3 R4 @& R6 U
解决方案:+ R; `7 {1 l  D) b1 m0 g  a
                ) f8 n3 N( X, `
8 `+ r1 \" J7 ]- L0 b) ?; ^

. j0 j. g8 s- u/ I7 I+ x, }                使用ARRAY构造函数:
- g2 Y+ k' b5 f) u# R, j5 SSELECT ARRAY [bool_or(column_a)7 b5 v' B! G, f6 Y5 Q' Q5 r
            , bool_or(column_b)3 b; Z, g  V. e" r1 H
            , bool_or(column_c)] AS arr_abc9 g6 b3 k# U4 y6 o3 H- C: i1 j
FROM   tbl* _; m5 S/ G* ^& d
WHERE  id IN (1,2);
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则