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;```