Oracle中SYS_CONNECT_BY_PATH函数的妙用

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

创新互联建站主要业务有网站营销策划、成都网站制作、成都做网站、微信公众号开发、小程序定制开发H5建站、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、全网营销推广资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。 

 
 
 
  1. create table test (a varchar2(10),b varchar2(10));
  2. INSERT INTO TEST (A, B) VALUES ('1', '我');
  3. INSERT INTO TEST (A, B) VALUES ('1', '们');
  4. INSERT INTO TEST (A, B) VALUES ('2', '一');
  5. INSERT INTO TEST (A, B) VALUES ('2', '起');
  6. COMMIT;
  7. SELECT A, B FROM TEST
  8. A          B
  9. ---------- ----------
  10. 1          我
  11. 1          们
  12. 2          一
  13. 2          起
  14. 现在需要达到如下的效果,
  15. A          B
  16. ---------- ----------
  17. 1          我,们
  18. 2          一,起

只想用一句sql来返回结果。

 
 
 
  1. SELECT A, LTRIM(MAX(SYS_CONNECT_BY_PATH(B, ',')), ',') B
  2. FROM (SELECT B, A, ROW_NUMBER() OVER(PARTITION BY A ORDER BY B DESC) RN
  3.           FROM TEST)
  4. START WITH RN = 1
  5. CONNECT BY RN - 1 = PRIOR RN
  6.        AND A = PRIOR A
  7. GROUP BY A;

其中,SYS_CONNECT_BY_PATH函数主要作用是可以把一个父节点下的所有子节点通过某个字符进行区分,然后连接在一个列中显示。

row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号。生产序号的方法通过over()函数里面的语句来控制。

分享标题:Oracle中SYS_CONNECT_BY_PATH函数的妙用
标题URL:http://www.shufengxianlan.com/qtweb/news43/497093.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联