经常在论坛上看到有人问多行转字符串的问题,下面对这类问题进行总结一下:
一:分析函数listagg()
语法:listagg(string,separator)within group(order-by-clause)over(partition-by-clause);
需要注意的是,由于listagg()不会聚合,为此有可能需要distinct来消除重复的行。
/**在论坛上看到有人想把下面的数据一转换成数据二的格式,
**显然是多行转字符串的问题,同时数据二的格式中行数不变
**正好使用分析函数相当方便;
**/
--数据一:
ID COL C2 C3
---------- --- -------------------- --------------------
1 a ads DE
1 b DE DERE
1 c R5 DTRE
2 d D DYE
2 e ad545s DRE
--数据二:
ID COL C2 C3
---------- --- -------------------- -----