当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
oracle合并字段
发布时间:2010/9/6 16:41:21 来源:城市学习网 编辑:ziteng
  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