是否可以(轻松)拼接Postgres中的数组?例如,我想将4
的所有值替换为值8
和12
,因此{2, 4, 7}
的数组应该变为{2, 8, 12, 7}
。也许我会以错误的方式解决这个问题,但我需要维护这些列的整数数组列类型。感谢您给我的任何指导。
答案 0 :(得分:0)
也许是UNNEST
?
WITH rep(ord, what, with_what) AS(
VALUES (1,4,8),
(2,4,12)
)
SELECT array_agg(COALESCE(with_what,elem) ORDER BY no, ord) AS new_array
FROM(
SELECT *
FROM UNNEST('{2, 4, 7}'::INTEGER[]) WITH ORDINALITY AS arr(elem, no)
LEFT JOIN rep ON arr.elem = rep.what
) AS q;
这样您就可以轻松定义一整套替换。