在Oracle 11g中转置行

时间:2019-07-16 15:17:05

标签: sql oracle oracle11g

输入如下-

IndexName      ColumnName
Ind1           Col1
Ind1           Col2
Ind2           Col3

现在如何使用sql(Oracle 11g)生成以下输出-

IndexName      ColumnName
Ind1           ("Col1","Col2")
Ind2           ("Col3")

请注意,事先不知道IndexName,ColumnName的列值。

谢谢,

1 个答案:

答案 0 :(得分:2)

使用LISTAGG

select indexname,     '('||listagg('"' ||columnname||'"' ,',')
   within group ( ORDER BY columnname) ||')' as ColumnName
from t group by indexname 

DEMO