Oracle數據庫合併行記錄,WMSYS.WM_CONCAT 函數的用和MySQL 中GROUP_CONCAT(id)的使用及比較。

Oracle: wmsys.wm_concat()

將結果集放入一列,通過逗號‘,’隔開

列如:

oracle10g以上版本提供行轉列組合成字符串函數wmsys.wm_concat

  例如有個users表如下:

  id yhm xm

  1 001 小唐

  2 002 小李

  3 003 小張

  selectwmsys.wm_concat(yhm) 用戶名, wmsys.wm_concat(xm) 姓名 from users

  執行結果爲:

  用戶名 姓名

  001,002,003小唐,小李,小張

 

wmsys.wm_concat()中的參數也可以使多個,使用”||”拼接,如下例子:

select deptno,wmsys.wm_concat(ename || '-' || job) name from emp group by deptno;

運行的結果如下表格:

deptno

ename

10

CLARK-MANAGER,MILLER-CLERK,KING-PRESIDENT

 

20

SMITH-CLERK,FORD-ANALYST,ADAMS-CLERK,SCOTT-ANALYST,JONES-MANAGER

30

ALLEN-SALESMAN,JAMES-CLERK,TURNER-SALESMAN,BLAKE-MANAGER,MARTIN-SALESMAN,WARD-SALESMAN


(也可使用group by 進行分組顯示合併)

MySQL:GROUP_CONCAT()


將結果集放入一起,默認通過逗號隔開,可用[] 設置

id分組,把name字段的值打印在一行,逗號分隔(默認)

 

1.  select id,group_concat(namefrom aa group by id;  

 

id分組,把name字段的值打印在一行,分號分隔

1.  select id,group_concat(name separator ';') from aa group 

2.  by id;  

 

id分組,把去冗餘的name字段的值打印在一行,
逗號分隔

Sql代碼  

1.  select id,group_concat(distinct namefrom aa group by id;  





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章