我正在通过SQL查询寻找一种方法,将来自同一字段但不同行的不同结果合并到一个字段中。
示例数据
ID TAG
1234 A
1234 B
1234 C
期望的结果:
ID TAG
1234 A|B|C
答案 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。
我还建议查看开发者网络的其他页面(您可以搜索您的主题),因为它们有很多很棒的信息。