Oracle中的LISTAGG函數用于將多行數據連接成一個單一的字符串,常用于將多行數據聚合為一個字符串,可以在SELECT查詢中使用。
語法: LISTAGG (列名, 分隔符) WITHIN GROUP (ORDER BY 列名)
參數解釋:
示例: 假設有以下表結構: 表名:employees
employee_id | department_id | employee_name |
---|---|---|
1 | 101 | John |
2 | 101 | Jane |
3 | 102 | Mike |
4 | 103 | Sarah |
要將部門ID為101的員工姓名連接成一個字符串,以逗號分隔,可以使用以下查詢: SELECT department_id, LISTAGG(employee_name, ‘,’) WITHIN GROUP (ORDER BY employee_id) AS employee_names FROM employees WHERE department_id = 101 GROUP BY department_id;
查詢結果:
department_id | employee_names |
---|---|
101 | John, Jane |
以上查詢將部門ID為101的員工姓名連接成一個字符串,并使用逗號分隔。在連接之前,按照員工ID進行了排序。