oracle, 列数据 合并问题

woshiyechao 2010-08-23 04:14:54
数据 表 test

有2个字段
id name
1 张三
2 李四
1 王五


要求最后显示:
id name
1 张三,王五
2 李四


数据库环境: oracle 9/10
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
minitoy 2010-08-23
  • 打赏
  • 举报
回复
你楼上不就是代码么
WITH t1 AS(SELECT ID,NAME,row_number()over(PARTITION BY ID ORDER BY ROWID) rn FROM test)
SELECT ID,sys_connect_by_path(NAME,',') FROM t1 WHERE connect_by_isleaf=1 START WITH rn=1 CONNECT BY PRIOR rn=rn-1 AND PRIOR ID=ID;
woshiyechao 2010-08-23
  • 打赏
  • 举报
回复
我是在pl/sql查询分析器 里 执行的, 能给我oracle9 的程序代码吗?
minitoy 2010-08-23
  • 打赏
  • 举报
回复
9i的更正下
SQL> 
SQL> WITH t1 AS(SELECT ID,NAME,row_number()over(PARTITION BY ID ORDER BY ROWID) rn FROM test)
2 SELECT ID,sys_connect_by_path(NAME,',') FROM t1 WHERE connect_by_isleaf=1 START WITH rn=1 CONNECT BY PRIOR rn=rn-1 AND PRIOR ID=ID
3 ;

ID SYS_CONNECT_BY_PATH(NAME,',')
---- --------------------------------------------------------------------------------
1 ,张三,王五
2 ,李四

SQL>
gelyon 2010-08-23
  • 打赏
  • 举报
回复
又是这个问题
参考:之前我写的
http://topic.csdn.net/u/20100811/16/fb729a12-7fdc-472b-ab62-62364e630ece.html
fuyou001 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 minitoy 的回复:]
看看精华帖,行转列.
10g可以用用wm_concat
select id,wm_concat(name) from table group by id;
9i的话可以使用分析函数和SYS_CONNECT_BY_PATH
with t1 as (select id,name,row_number()over(partition by id order by name asc) rn)
s……
[/Quote]

哈哈....楼主已经写出来了
fuyou001 2010-08-23
  • 打赏
  • 举报
回复
利于 row_number()over(partition by id order by id) rn
来构造树
start with rn = 1---开始选

where lvele = rn --只选最大的level

列用sys_connect_path(name,',')(记不清了,可能函数不是这样写的) 最后用rtim()去掉前面的,

给个思路,准确函数名及用法楼主搜索下
minitoy 2010-08-23
  • 打赏
  • 举报
回复
看看精华帖,行转列.
10g可以用用wm_concat
select id,wm_concat(name) from table group by id;
9i的话可以使用分析函数和SYS_CONNECT_BY_PATH
with t1 as (select id,name,row_number()over(partition by id order by name asc) rn)
select id,SYS_CONNECT_BY_PATH(name,',') from t1 where connect_by_isleaf=1
connect by prior rn=rn-1;
woshiyechao 2010-08-23
  • 打赏
  • 举报
回复
我用的oracle 9 数据库

wm_concat 不识别
iqlife 2010-08-23
  • 打赏
  • 举报
回复
select id,wm_concat(name) from tab
group by id

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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