首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle WM_CONCAT 列轉行逗號分隔聚合:分組彙總用戶名稱實戰範例與執行結果展示

     編輯:Oracle 資料庫相關知識

測試資料準備

CREATE TABLE wlbtest1 (username VARCHAR2(2), deptID NUMBER);
CREATE TABLE wlbtest2 (deptName VARCHAR2(10), deptID NUMBER);

INSERT INTO wlbtest1 VALUES ('a', 1);
INSERT INTO wlbtest1 VALUES ('b', 1);
INSERT INTO wlbtest1 VALUES ('c', 1);
INSERT INTO wlbtest1 VALUES ('d', 2);
INSERT INTO wlbtest1 VALUES ('e', 2);
INSERT INTO wlbtest1 VALUES ('f', 2);

INSERT INTO wlbtest2 VALUES ('部門1', 1);
INSERT INTO wlbtest2 VALUES ('部門2', 2);

WM_CONCAT 聚合查詢

SELECT deptID, WM_CONCAT(username) username, '部門'||deptID deptName
FROM wlbtest1
GROUP BY deptID;

執行結果

結果展示:deptID=1 聚合為 a,b,c,deptID=2 聚合為 d,e,f,並動態生成部門名稱。

注意事項

  • WM_CONCAT 為非文件化內部函數,版本間行為可能差異
  • 11gR2+ 建議使用標準 LISTAGG:LISTAGG(username, ',') WITHIN GROUP (ORDER BY username)
  • 大量資料聚合可能超過 4000 字元限制(VARCHAR2 上限),需注意
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved