[英]How to concat columns into a string in Snowflake?
我有这张表Movie
,其列定义为(CustomerId, MovieId, Name)
,我想通过将它们连接成 position 中的字符串来获取这些列,它们在 Snowflake 中定义,通过ORDINAL_POSITION
进行排序。
所以我发现使用 LISTAGG() 可以让我非常接近我想要的。 通过执行以下操作,我接近了我想要的字符串,但我得到了重复的列名。 我发现人们会根据表中的列使用分组依据和排序依据,而不是使用 ORDINAL_POSITION。 所以这就是我正在努力寻找解决方案的原因。 我发现 COALESCE 可以提供帮助,因为它返回第一个非空值,但是,我正在努力将其集成到我的查询中。
//Query
select listagg(column_name, ',') within group (order by ORDINAL_POSITION)
from information_schema.columns
where table_name='Movie';
Output:
CUSTOMERID,CUSTOMERID,CUSTOMERID,MovieId,MovieId,MovieId,
Name,Name,Name
关于如何完成此操作的任何帮助或想法?
根据设计,每个表的列名应该是唯一的。 可能表存在于多个模式/数据库中:
select listagg(column_name, ',') within group (order by ORDINAL_POSITION)
from information_schema.columns
where table_name='Movie'
and table_schema = 'XXX'
and table_catalog = 'YYY';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.