Oracle中SYS_CONNECT_BY_PATH函数是非常重要的函数,下面就为您介绍一个使用SYS_CONNECT_BY_PATH函数的例子,实例如下:

创新互联建站主要业务有网站营销策划、成都网站制作、成都做网站、微信公众号开发、小程序定制开发、H5建站、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、全网营销推广资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。
- create table test (a varchar2(10),b varchar2(10));
 - INSERT INTO TEST (A, B) VALUES ('1', '我');
 - INSERT INTO TEST (A, B) VALUES ('1', '们');
 - INSERT INTO TEST (A, B) VALUES ('2', '一');
 - INSERT INTO TEST (A, B) VALUES ('2', '起');
 - COMMIT;
 - SELECT A, B FROM TEST
 - A B
 - ---------- ----------
 - 1 我
 - 1 们
 - 2 一
 - 2 起
 - 现在需要达到如下的效果,
 - A B
 - ---------- ----------
 - 1 我,们
 - 2 一,起
 
只想用一句sql来返回结果。
- SELECT A, LTRIM(MAX(SYS_CONNECT_BY_PATH(B, ',')), ',') B
 - FROM (SELECT B, A, ROW_NUMBER() OVER(PARTITION BY A ORDER BY B DESC) RN
 - FROM TEST)
 - START WITH RN = 1
 - CONNECT BY RN - 1 = PRIOR RN
 - AND A = PRIOR A
 - GROUP BY A;
 
其中,SYS_CONNECT_BY_PATH函数主要作用是可以把一个父节点下的所有子节点通过某个字符进行区分,然后连接在一个列中显示。
row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号。生产序号的方法通过over()函数里面的语句来控制。
Copyright © 2009-2022 www.wtcwzsj.com 青羊区广皓图文设计工作室(个体工商户) 版权所有 蜀ICP备19037934号