在 SQLSERVER 时发现 for xml path 写法为行转列,可以使用 wm_concat 函数进行替换,但是 wm_concat 函数默认用逗号分割,所以使用不方便,可以使用 LISTAGG 函数进行替换。wm_concat、LISTAGG 均与 ORACLE 兼容。
LISTAGG(exp1, exp2) 集函数首先根据 SQL 语句中的 group by 分组(如果没有指定分组则所有结果集为一组),然后在组内按照 WITHIN GROUP 中的 ORDER BY 进行排序,最后将表达式 exp1 用表达式 exp2 串接起来。
LISTAGG 的用法:
<LISTAGG>(<参数>[,<参数>]) WITHIN GROUP(<ORDERBY 项>)
如下图所示:
使用 LISTAGG 函数,如下图所示:
文章
阅读量
获赞