将多行转换为雪花中的一个逗号分隔值

Posted

技术标签:

【中文标题】将多行转换为雪花中的一个逗号分隔值【英文标题】:convert multiple rows to one comma separated values in snowflake 【发布时间】:2020-08-05 11:38:12 【问题描述】:

我需要将一列中的多个记录/行转换为雪花中的单个逗号分隔值。 我在 MSSQL SERVER 中使用 FOR XML,但我需要在 SNOWSQL 中做同样的事情。

示例 - 具有三个值 A、B、C 的 Column-1 第 1 列 一种 乙 C

我需要像 A、B、C 一样连接的值。

【问题讨论】:

【参考方案1】:

请看一下 Snowflake 的 LISTAGG 函数:

https://docs.snowflake.com/en/sql-reference/functions/listagg.html

示例如下:

CREATE OR REPLACE TABLE xyz (str varchar(100));
INSERT INTO xyz (str) VALUES ('A'), ('B'), ('C');
SELECT listagg(str, ',') as my_strings FROM xyz;

--results
MY_STRINGS
A,B,C

我希望这会有所帮助...丰富

【讨论】:

以上是关于将多行转换为雪花中的一个逗号分隔值的主要内容,如果未能解决你的问题,请参考以下文章

将单个逗号分隔的行转换为多行

将多行字符串转换为单个逗号分隔

雪花 - 计算逗号分隔列表中的不同值

获取逗号分隔值到informatica中的多行?

如何将数字转换为 Klaviyo 中的逗号分隔值

使用 SQL Server 将逗号分隔的文本转换为多列结果