我想,先用UNPIVOT进行行列转换,然后再用列行转换,为什么会出现下面的错误?求大神讲解,下面的代码应该怎么改错!
WITH TEMP1 AS( 
SELECT FID,CHAR_ID,NUM
FROM 
(
SELECT '一' AS FID,1 AS "A",2 AS "B",3 AS "C",4 AS "D" FROM DUAL  UNION ALL
SELECT '二' ,8,7,6,5 FROM DUAL UNION ALL
SELECT '三',9,10,11,12 FROM DUAL UNION ALL
SELECT '四',16,15,14,13 FROM DUAL
) T
UNPIVOT
(NUM FOR CHAR_ID
IN("A","B","C","D")
)P
)
SELECT CHAR_ID,"一","二","三","四"
FROM TEMP1 T
PIVOT
(
SUM(NUM) FOR FID 
         IN ("一","二","三","四")--------系统说这里出错了??不是很懂
) P;
--------------错误提示-------------------命令出错, 行: 20 列: 21
错误报告:
SQL 错误: ORA-56901: 不允许将非常量表达式用于 pivot|unpivot 值