表的结构为:
CateId UserId
cate1 user1
cate1 user2
cate2 user2
我要得到这样的结果:
CateId Users
cate1 user1,user2
cate2 user2
这个sql该怎么写?
CateId UserId
cate1 user1
cate1 user2
cate2 user2
我要得到这样的结果:
CateId Users
cate1 user1,user2
cate2 user2
这个sql该怎么写?
解决方案 »
- sql嵌套查询,left join不上,帮忙看看语句写得有没问题
- 求助,oracle11g 安装时出现invalid entry crc 错误,重装继续出现该为题
- 维护及日志记录问题
- 求解,各位大gg大mm,请帮忙啊!
- 关于oracle distinct语句排序的问题,谁熟悉,进来看看
- oracle jdbc 问题
- Oracle创建全文索引错误,提示没有权限?(散分)
- 请大家帮我解决一个问题!
- 如何创建一个用户只能以normal模式登陆,不能以sysdba和sysoper登陆OEM
- ORA-12560: TNS:protocol adapter error
- 数据库无法导出,无法进行库内表复制…无法进行冷备,数据文件无法拷贝……完了完了……
- oracle 10g 不能登陆了
用select cateid,wmsys.wm_concat(userid) users from tablename
oracle牛就是在于这一点,很多函数都能顺应市场要求啊
select cateid,wmsys.wm_concat(userid) users from tableA group by cateid;--to linzhangs:少了group by cateid可是不行的啊?!
的用sys_connect_by_path了
SQL> select * from ttt;
CATEID USERID
---------- ----------
cate1 user1
cate1 user2
cate2 user2
SQL>
SQL> select cateid, substr(max(sys_connect_by_path(userid, ',')), 2) users
2 from (select cateid,
3 userid,
4 rn + row_number() over(order by rn) rn1,
5 row_number() over(partition by rn order by rn) rn2
6 from (select a.cateid, a.userid, rn
7 from ttt a
8 left join (select cateid, rownum rn
9 from (select distinct cateid from ttt)) b on a.cateid =
10 b.cateid
11 order by 1, 2))
12 start with rn2 = 1
13 connect by prior rn1 = rn2
14 group by cateid
15 ;
CATEID USERS
---------- --------------------------------------------------------------------------------
cate1 user1,user2
cate2 user2