LISTAGG 是 Oracle 資料庫中的一個聚合函數,用於將多行數據的值連接成一個字串。這個函數特別適用於當你希望將查詢結果中的多行數據按某種分隔符連接成一個單一的字串時。
語法
LISTAGG (expression, delimiter) WITHIN GROUP (ORDER BY column)
. expression:要連接的列或表達式。
. delimiter:用來分隔連接後字串的分隔符,例如逗號(,)或分號(;)。
. WITHIN GROUP (ORDER BY column):指定在連接之前的排序方式。
SELECT department_id,
LISTAGG(employee_name, ', ') WITHIN GROUP (ORDER BY employee_name) AS employee_names
FROM employees
GROUP BY department_id;
這樣會返回每個部門的員工姓名連接成一個以逗號和空格分隔的字串,並按照姓名的字母順序排序。
LISTAGG 函數能夠簡化需要將多行數據合併成一個字串的查詢,提供了強大的字符串處理能力。