求字符串合并问题,谢谢

sujian2004515 2010-03-25 04:15:45
例表:
no name jiner you
01 ss 10 麦子
02 dd 11 萝卜
03 cc 9 大豆
01 ss 10 白菜
求表

no name jiner you
01 ss 10 麦子,白菜
02 dd 11 萝卜
03 cc 9 大豆

看看大家咋么实现,另外在oracle和SQL中是否一样实现,谢谢
...全文
145 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
没_没_没超疯 2010-03-26
  • 打赏
  • 举报
回复
进来学习下
icecard 2010-03-26
  • 打赏
  • 举报
回复
oracle 9i环境下的一种写法:

select no,name,jiner,max(ltrim(sys_connect_by_path(you,',') ,','))you
from (select row_number() over(partition by no order by no)rn,no,name,jiner,you from tab)
start with rn=1
connect by prior no=no
and prior name=name
and prior jiner=jiner
and prior rn+1=rn
group by no,name,jiner
order by no
Adebayor 2010-03-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 tangren 的回复:]
SQL code
-9i写一个
WITH tab AS(
select '01' no,'ss' name, 10 jiner,'麦子' you from dual union all
select '02' no,'dd' name, 11 jiner,'萝卜' you from dual union all
select '03' no,'cc' name, 9 jin……
[/Quote]
up

最好在后面加个 order by a.no;
tangren 2010-03-25
  • 打赏
  • 举报
回复
-9i写一个
WITH tab AS(
select '01' no,'ss' name, 10 jiner,'麦子' you from dual union all
select '02' no,'dd' name, 11 jiner,'萝卜' you from dual union all
select '03' no,'cc' name, 9 jiner,'大豆' you from dual union all
select '01' no,'ss' name, 10 jiner,'白菜' you from dual)
SELECT a.no, a.name, a.jiner, ltrim(MAX(sys_connect_by_path(you, ',')), ',') you
FROM (SELECT row_number() over(PARTITION BY a.no, a.name, a.jiner
ORDER BY a.no, a.name, a.jiner) rn,a.*
FROM tab a) a
START WITH rn = 1
CONNECT BY PRIOR rn = rn - 1 AND
a.no = PRIOR a.no AND
a.name = PRIOR a.name AND
a.jiner = PRIOR a.jiner
GROUP BY a.no, a.name, a.jiner
Phoenix_99 2010-03-25
  • 打赏
  • 举报
回复
10g用wm_concat
suiziguo 2010-03-25
  • 打赏
  • 举报
回复
忘了group by,
select no,name,jiner,wm_concat(you) you from table
group by no,name,jiner;
iqlife 2010-03-25
  • 打赏
  • 举报
回复
select no,name,jiner,wm_concat(you)
from tab
group by no,name,jiner
suiziguo 2010-03-25
  • 打赏
  • 举报
回复
10g及以上:
select no,name,jiner,wm_concat(you) you from table;

9i及以前的需要用sys_connect_by_path。

17,377

社区成员

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

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