我使用的是Postgres 8.2.11的旧版本。对于这个Postgres 8.2.11,任何人都可以告诉我相当于MySql的group_concat
。我尝试了array_accum
,array_to_string
,string_agg
,但在此版本中无法使用
答案 0 :(得分:1)
评论中的"not quite duplicate"应指向正确的方向:create your own aggregate function。首先,您需要一个非聚合字符串连接函数,如下所示:
create function concat(t1 text, t2 text) returns text as $$
begin
return t1 || t2;
end;
$$ language plpgsql;
然后您可以定义自己的该函数的聚合版本:
create aggregate group_concat(
sfunc = concat,
basetype = text,
stype = text,
initcond = ''
);
现在您可以group_concat
随心所欲:
select group_concat(s)
from t
group by g
我从档案中挖出了这个,但我认为它应该适用于8.2。
请注意,不再支持8.2,因此您可能希望尽快升级到至少8.4。