怎么搜索出每個分類的權限用戶

dropping 2008-11-10 11:15:58
表的结构为:
CateId UserId
cate1 user1
cate1 user2
cate2 user2
我要得到这样的结果:
CateId Users
cate1 user1,user2
cate2 user2
这个sql该怎么写?
...全文
171 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
范佩西_11 2008-11-10
  • 打赏
  • 举报
回复
给你搞出来了。真麻烦!
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
dropping 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 BlueskyWide 的回复:]
9.2的只能使用function或是procedure来处理了。
[/Quote]
帮写个简单的实例吧....
谢谢
BlueskyWide 2008-11-10
  • 打赏
  • 举报
回复
9.2的只能使用function或是procedure来处理了。

[Quote=引用 4 楼 dropping 的回复:]
我的是9.2的..
不是10g的...怎么办?
[/Quote]

范佩西_11 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 BlueskyWide 的回复:]
SQL codeselectcateid,wmsys.wm_concat(userid) usersfromtableAgroupbycateid;--to linzhangs:少了group by cateid可是不行的啊?!

引用 2 楼 linzhangs 的回复:
wmsys.wm_concat赚的分真不少,哈哈

[/Quote]呵呵。太快了,高兴太早了。人家是9的
的用sys_connect_by_path了
BlueskyWide 2008-11-10
  • 打赏
  • 举报
回复

select cateid,wmsys.wm_concat(userid) users from tableA group by cateid;

--to linzhangs:少了group by cateid可是不行的啊?!


[Quote=引用 2 楼 linzhangs 的回复:]
wmsys.wm_concat赚的分真不少,哈哈
[/Quote]
sleepzzzzz 2008-11-10
  • 打赏
  • 举报
回复
select cateid,wmsys.wm_concat(userid) users from tablename group by cateid -- 少了个group by,真大意啊



[Quote=引用 1 楼 linzhangs 的回复:]
10g

SQL codeselect cateid,wmsys.wm_concat(userid) users from tablename
[/Quote]
dropping 2008-11-10
  • 打赏
  • 举报
回复
我的是9.2的..
不是10g的...怎么办?
sleepzzzzz 2008-11-10
  • 打赏
  • 举报
回复
看来这样的需求真不少啊,
oracle牛就是在于这一点,很多函数都能顺应市场要求啊



[Quote=引用 2 楼 linzhangs 的回复:]
wmsys.wm_concat赚的分真不少,哈哈
[/Quote]
范佩西_11 2008-11-10
  • 打赏
  • 举报
回复
wmsys.wm_concat赚的分真不少,哈哈
范佩西_11 2008-11-10
  • 打赏
  • 举报
回复
10g
select cateid,wmsys.wm_concat(userid) users from tablename

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧