我有一张桌子。我可以在同一行中使用“,”显示表中列的所有数据。但我不能明确地应用它。请帮助
答案 0 :(得分:3)
这很棘手。一个简单的建议是使用select distinct
:
select listagg(col, ',') within group (order by col)
from (select distinct col from t) x;
但是,这使得难以计算其他聚合(或生成更多的listagg()
结果)。另一种方法是将窗口函数与listagg()
结合使用:
select listagg(case when seqnum = 1 then col end, ',') within group (order by col)
from (select t.*,
row_number() over (partition by col order by col) as seqnum
from t
) t