PostgreSQL中的复杂选择

时间:2014-12-26 05:01:48

标签: sql postgresql select

如何将表中的多个行组合成一个带有一些自定义字符的行?

用于描述我的问题我将展示一个示例表和数据,

create table bar ( 
        foo text
      );

insert into bar values ('ABC'),
                       ('DEF'),
                       ('UVW'),
                       ('XYZ');

我需要得到一个如下所示的结果

1_ABC, 2_DEF, 3_UVW, 4_XYZ

1 个答案:

答案 0 :(得分:1)

借助PostgreSQL中的row_number()string_agg函数,您可以获得所需的结果

根据文件,

  

row_number():其分区中当前行的编号,   从1

开始计算      

string_agg(expression,delimiter):输入值连接成一个   字符串,用分隔符分隔

select string_agg(col,', ') result 
from (
       select row_number() over() ||'_'|| foo  col 
       from bar
     ) t