SQL在一个字段中组合不同的行结果

时间:2015-11-10 22:11:03

标签: sql amazon-redshift

我正在通过SQL查询寻找一种方法,将来自同一字段但不同行的不同结果合并到一个字段中。

示例数据

 ID    TAG 
 1234   A 
 1234   B 
 1234   C

期望的结果:

 ID     TAG 
 1234   A|B|C

2 个答案:

答案 0 :(得分:5)

Amazon Redshift虽然基于Postgres,但实际上支持LISTAGG()(否则是Oracle功能)。记录here。所以:

select id, listagg(tag, '|') within group (order by tag) as tags
from t
group by id;

答案 1 :(得分:1)

一种方法是设置函数或存储过程以返回值,具体取决于您希望如何访问数据。然后,您可以设置游标以遍历结果集,连接每行的值,然后返回结果值。

Microsoft使用游标很好example

我还建议查看开发者网络的其他页面(您可以搜索您的主题),因为它们有很多很棒的信息。