日期:2014-05-17  浏览次数:20887 次

请教一个比较复杂的SQL查询语句
表A :纪录如下
网上代理号 收件人 地址 联系电话 编号
H76 胡A 敬龙布艺城 23360313 HH003269905CN

H47 吴A 志达 23882238 HH003270316CN

H21 叶A 沙头大道140号 13XXX828071 HH003270611CN
H49 叶A 沙头大道140号 13XXX828071 HH003270611CN
H97 叶A 沙头大道140号 13XXX828071 HH003270611CN
H00 叶A 沙头大道140号 13XXX828071 HH003270611CN

H73 苏A 晖楼强虹公司 13XXX930094 HH003273768CN
H92 苏A 晖楼强虹公司 13XXX930094 HH003273768CN
H48 苏A 晖楼强虹公司 13XXX930094 HH003273768CN


根据编号相同的,将对应的'网上代理号'合并,各个‘网上代理号’用'/'隔开,需要的查询结果是:(如下)

网上代理号 收件人 地址 联系电话 编号
H76 胡A 敬龙布艺城 23360313 HH003269905CN

H47 吴A 志达 23882238 HH003270316CN

H21/H49/H97/H00 叶A 沙头大道140号 13XXX828071 HH003270611CN
H73/H92/H48 苏A 晖楼强虹公司 13XXX930094 HH003273768CN

请问改如何操作?

------解决方案--------------------
参考一下这个,懒得改了

select column2 ,column3, max(substr(sys_connect_by_path(column1, ','), 2)) column1 from (
select column1,column2 ,column3, colc, lead(colc) over(partition by id order by colc) cold from (
select column1,column2 ,column3, row_number() over(order by column2 ,column3) colc from tab) )
start with cold is null
connect by prior colc=cold
group by column2 ,column3;