VM_CONCAT
vm_concat可以用来进行行转列,默认以逗号分隔,可通过vm_concat(name,’,’,’|’)修改为|
|
|
Oracle 12C之后该函数已经不再支持了
LISTAGG
LISTAGG是Oracle 11g中推出的函数,也可以用来做行转列
|
|
19C才开始支持distinct去重
XMLAGG
XMLAGG是一个聚合函数,可以将数据聚集成XML格式数据。XMLAGGf返回的类型为clob,最大字节长度为32767,因此当行转列字符长度超出限制时可以采用改方式来避免该错误。
|
|
PIVOT与UNPIVOT
Oracle 11g中又加入了两个函数:PIVOT和UNPIVOT,用于进行行专列和列转行,与SQL Server中同名函数功能一致
基础数据
|
|
行转列
|
|
UNPIVOT和PIVOT相反,用于进行列转行
更多详细信息请参考Pivot Operator