选择所有列时取消透视失败
一种有效的方法,
SELECT
b.*
FROM test b
UNPIVOT (amt FOR account IN (quantity AS 'Qty ',revenue AS 'Revenue',unit_price as 'Unit Price'))b
以下一项失败,
select
all columns
from test b
UNPIVOT (amt FOR account IN (quantity AS 'Qty ',revenue AS 'Revenue',unit_price as 'Unit Price'))b
选择所有列时为何不起作用?
答案 0 :(得分:0)
“所有列”是Oracle未知的语法。获取所有可能的列的方式是“ *”。
您将B用作TEST表和UNPIVOT子句结果的别名。这使问题感到困惑。
实际上,TEST表中的列不可用于SELECTion。您只能选择的列是UNPIVOT操作之后存在的列。试试这个:
select a.* from dual a
unpivot(val for col in (dummy));
Error report -
SQL Error: ORA-00904: "A": invalid identifier
表已输入到UNPIVOT,就是全部。