oracle 10g+ 行列转换

来源:互联网 发布:百度云搜索源码 编辑:程序博客网 时间:2024/06/06 03:56
WITH t AS(  SELECT 1 AS sno, 1 AS cno, 5 AS grade    FROM dual  UNION ALL  SELECT 1, 2, 6    FROM dual  UNION ALL  SELECT 1, 3, 10    FROM dual  UNION ALL  SELECT 2, 3, 10    FROM dual  UNION ALL  SELECT 2, 2, 10    FROM dual  UNION ALL  SELECT 3, 1, 9    FROM dual  UNION ALL  SELECT 3, 2, 9    FROM dual)  SELECT a.sno, Max(a.aa)    FROM (SELECT sno,                 wm_concat(cno || ',' || grade) over(partition BY sno order by cno, grade) AS aa            FROM t) a   GROUP BY a.sno;

 

运行一下就知道是啥意思了

 

原创粉丝点击