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(name) from 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 name) from aa group by id;