【发布时间】:2014-09-05 11:14:34
【问题描述】:
我在这个网站上看到了很多例子,但我仍然没有得到任何解决方案。所以我发布了这个问题。
请建议我如何解决此问题。我正在开发 oracle 11gR1 版本。
year price Quantity
1991 10 50
2008 20 96
我想输出为
1991 10
1991 20
2008 50
2008 96
我尝试使用数据透视函数但未实现,并且由于 SQL 命令未正确终止而出现异常。
以下是我的查询。我不擅长sql。
select * from (select year, price ,quanty from my_table )
pivot( min(year) year in (price, quanty) );
编辑上述问题:
select year, value
from my_table
unpivot
(
value
for col in (price, quantity)
) u
对于上述查询,如果我还有一列名称为 varchar 的产品名称,我正在获取并且我在上述查询中传递该列,如下所示。
select year, value
from my_table
unpivot
(
value
for col in (price, quantity,productname)
) u
得到错误
ORA-01790:表达式必须与对应的表达式具有相同的数据类型
请@BlueFeet 对此提出建议。
【问题讨论】:
-
ORA-01790 错误是不言自明的错误,你不这么认为吗?