Oracle在11g版本之后,取消了wm_concat
函數(shù),所以在較新的版本中無(wú)法直接使用該函數(shù)。
如果你需要連接多行數(shù)據(jù)成為一個(gè)字符串,可以使用LISTAGG
函數(shù)來(lái)實(shí)現(xiàn)。LISTAGG
函數(shù)的語(yǔ)法如下:
LISTAGG(column_name, separator) WITHIN GROUP (ORDER BY column_name)
其中,column_name
是要連接的列名,separator
是連接的分隔符。如果需要按照某個(gè)列進(jìn)行排序,可以使用WITHIN GROUP (ORDER BY column_name)
子句。以下是一個(gè)使用LISTAGG
函數(shù)的示例:
SELECT department_id, LISTAGG(employee_name, ',') WITHIN GROUP (ORDER BY employee_name)
FROM employees
GROUP BY department_id;
如果你使用的是較舊的Oracle版本,也可以考慮使用其他方法實(shí)現(xiàn)字符串連接,如使用XMLAGG
函數(shù)或自定義函數(shù)等。