Unpivot的问题

时间:2019-06-26 05:14:12

标签: sql oracle

选择所有列时取消透视失败

一种有效的方法,

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

选择所有列时为何不起作用?

1 个答案:

答案 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,就是全部。