用法介紹:
一、WMSYS.WM_CONCAT進行連接字符串
SELECT WMSYS.WM_CONCAT(NAME) FROM t;
結果:A,B,AA,BB,C,C,B
SELECT WMSYS.WM_CONCAT(DISTINCT NAME) FROM t;
結果:A,B,AA,BB,C
二、SYS.STRAGG
SELECT TRIM(',' FROM SYS.STRAGG( [DISTINCT] NAME||NVL2(NAME,',',''))) AS CON_NAME FROM t;
結果:A,B,AA,BB,C,C,B
SELECT SYS.STRAGG( [DISTINCT] NAME) AS CON_NAME FROM t;
結果:ABAABBCCB
說明:沒有逗號隔開
三、LISTAGG
待補充
異常說明:
當用WMSYS.WM_CONCAT
時,傳入的參數值太長時(返回的字符串長度不超過4000),則會報如下的錯誤;則可以考慮使用SYS.STRAGG
方法來連接字符串。
WMSYS.WM_CONCAT_IMPL PL/SQL: 數字或值錯誤 : 字符串緩衝區太小
特殊說明:
在使用WMSYS.WM_CONCAT,SYS.STRAGG
聚合函數的時候,裏面的值是沒有順序的,如果多個字段同時使用了此聚合函數,他們之前的順序並不能一一對應;