Oracle用函数或PIVOT实现行转列

原数据:

 目标数据:

实现代码:

SELECT YEAR AS "年",
SUM (DECODE (QUATER, 1, RATE, 0)) AS "季度一",
SUM (DECODE (QUATER, 2, RATE, 0)) AS "季度二",
SUM (DECODE (QUATER, 3, RATE, 0)) AS "季度三",
SUM (DECODE (QUATER, 4, RATE, 0)) AS "季度四"
FROM SEASON
GROUP BY YEAR ORDER BY 1;

或者

SELECT * FROM (
SELECT YEAR AS "年",QUATER,RATE FROM SEASON)
PIVOT(
SUM(RATE) FOR QUATER IN(1 AS "一季度",2 AS "二季度",3 AS "三季度",4 AS "四季度"));

猜你喜欢

转载自www.cnblogs.com/guipeng/p/11581478.html