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;