SQL中的拼接操作
- 常用listagg聚合函数
- [也可用 XMLAGG代替上述操作](#也可用 XMLAGG代替上述操作)
常用listagg聚合函数
sql
LISTAGG(column, [separator]) WITHIN GROUP (ORDER BY order_by_clause)
column:你想要连接起来的列。
separator\]:可选参数,用于指定列值之间的分隔符。如果不指定,则默认没有分隔符。 WITHIN GROUP (ORDER BY order_by_clause):指定连接时列值的排序方式。这是必须的,因为 LISTAGG 需要知道如何对值进行排序以生成最终的字符串。 ### 用法 ```sql SELECT department_id, LISTAGG(employee_name, ', ') WITHIN GROUP (ORDER BY employee_name) ||',' AS employees FROM employees GROUP BY department_id; ``` LISTAGG(employee_name, ', ') :这里表示拼接wy字段,使用','隔开, \|\|',' : 结尾这个表示字段最后也加上','逗号 group (order by l_ztbh)按照 l_ztbh字段进行排序 ## 也可用 XMLAGG代替上述操作 ````sql SELECT department_id, XMLELEMENT(NAME "employees", XMLAGG(XMLELEMENT(NAME "employee", employee_name) ORDER BY employee_name)).EXTRACT('//text()') AS employees_xml FROM employees GROUP BY department_id;``` ````