当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
应用技术:oracle合并字段
发布时间:2010/9/7 17:27:05 来源:www.xue.net 编辑:城市总裁吧

  table1

  NO SNAME

  1 张三

  2 李四

  table2

  NO YEAR

  1 2006年

  1 2007年

  2 2005年

  2 2006年

  结果用sql 语言 :

  SNAME YEAR

  张三 2006 年,2007年

  李四 2005 年,2006年

  SELECT SNAME,LTRIM(MAX(SYS_CONNECT_BY_PATH(YEAR,',')),',') AS YEAR

  FROM (

  SELECT NO,SNAME, YEAR,

  ROW_NUMBER() OVER(PARTITION BY NO ORDER BY YEAR) as CURR,

  ROW_NUMBER() OVER(PARTITION BY NO ORDER BY YEAR) - 1 as PREV

  FROM (

  SELECT A.NO, A.SNAME, B.YEAR

  FROM table1 A INNER JOIN table2 B ON A.NO = B.NO

  )

  )

  START WITH CURR = 1

  CONNECT BY PREV = PRIOR CURR and NO = PRIOR NO

  GROUP BY SNAME

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved