oracle 字符串拼接,以前不知道oracle的wm_contact,connect by, start with 这么强大
http://zhidao.baidu.com/question/354933582.html
http://www.cnblogs.com/lettoo/archive/2010/08/03/1791239.html
2011-12-15 16:06
提问者:
lxy_0707
关于oracle需求:表A中有字段a(运单号),b(出发地),c(目的地),d(航段编号)一张表中运单号最多重复4个,换句话说最多有4行的运单号是一样的,比如运单号为999的有4条记录,分别对应着航段编号1,2,3,4 。第一条:出发地x,目的地y。第二条:出发地y,目的地z。第三条:出发地z,目的地m。第四条:出发地m,目的地l。所以,我想汇总他们的时候得出一个字段叫“航程”,值为x-y-z-m-l。怎么写sql语句。
问题补充:
http://d.hiphotos.baidu.com/zhidao/wh%3D450%2C600/sign=8293b960b051f819f1700b4eef8466db/f9dcd100baa1cd11c90a4d6bb912c8fcc3ce2d38.jpg
我来帮他解答
满意回答
2011-12-15 17:01
select t1.b || '-' || t2.b
from (select a, b from A where d = 1) t1,
(select a, replace(wm_concat(c), ',', '-') b
from A
start with d = 1
connect by b = prior c
group by a) t2
where t1.a = t2.a
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com