Chinaunix首页 | 论坛 | 博客
  • 博客访问: 39576
  • 博文数量: 13
  • 博客积分: 290
  • 博客等级: 二等列兵
  • 技术积分: 145
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-14 11:27
文章分类

全部博文(13)

文章存档

2012年(13)

我的朋友

分类: Oracle

2012-11-01 10:00:30

MYSQL:
SELECT id,group_concat(name) FROM table group by id;
SELECT id,group_concat(distinct name order by lev desc) FROM table group by id;

ORACLE:
vm_group

SELECT id,wm_group(name) from table group by id;

for example:
select id,val from idtable;
ID VAL
---------- --------------------
10 abc
10 abc
10 def
10 def
20 ghi
20 jkl
20 mno
20 mno
8 rows selected
SQL> commit;
SQL> SELECT ID,WMSYS.WM_CONCAT(VAL)AS ENAMES
2 FROM IDTABLE
3 GROUP BY ID;

ID ENAMES
---------- --------------------------------------------------------------------------------
10 abc,abc,def,def
20 ghi,jkl,mno,mno

******************************************************************************************************

listagg

Base Data:

DEPTNO ENAME
---------- ----------
20 SMITH
30 ALLEN
30 WARD
20 JONES
30 MARTIN
30 BLAKE
10 CLARK
20 SCOTT
10 KING
30 TURNER
20 ADAMS
30 JAMES
20 FORD
10 MILLER
SELECT deptno, LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees
FROM emp
GROUP BY deptno;
Desired Output:

DEPTNO EMPLOYEES
---------- --------------------------------------------------
10 CLARK,KING,MILLER
20 SMITH,FORD,ADAMS,SCOTT,JONES
30 ALLEN,BLAKE,MARTIN,TURNER,JAMES,WARD


阅读(566) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~