我正在使用array_agg()函数将多行转换为数组, 我需要将该数组赋予条件的选择语句。
我的查询是,
SELECT * FROM table WHERE id =
ALL(SELECT array_agg(id) FROM table WHERE some_condition)
但它给出了错误,我怎么能过来......
答案 0 :(得分:3)
使用我的查询
,通过类型转换数组来清除错误 SELECT * FROM table WHERE id =
ALL((SELECT array_agg(id) FROM table WHERE some_condition)::bigint[])
答案 1 :(得分:1)
好像你过分复杂了。据我所知,您的查询应该等同于简单:
SELECT * FROM table WHERE some_condition
或者,如果您从2个不同的表中进行选择,请使用join:
SELECT table1.*
FROM table1
JOIN table2 ON table1.id = table2.id
WHERE some_condition
这不仅更简单,而且比摆弄数组更快。