草庐IT

Oracle行转列(pivot)和Oracle列转行(unpivot)

        行变列,列变行在生成报表的时候经常遇到,行变列叫做"Pivot”,反之叫做"Unpivot”。在Oracle11g之前,一般都是通过case来实现,但是Oracle11g及其以后直接支持PIVOT和UNPIVOT的操作。pivot    语法:        SELECT * FROM (元数据)PIVOT ( SUM(Score/*行转列后 列的值*/) FOR  coursename/*需要行转列的列*/ IN (转换后列的值))for可以看成循环,for前是行转列后显示的值(这里必须使用聚合函数),for后是循环的字段(一般是有限的固定值,如字典等)in(里是对for后的