使用子查询 oracle sql 进行数据透视
Posted
技术标签:
【中文标题】使用子查询 oracle sql 进行数据透视【英文标题】:Pivot with subquery oracle sql 【发布时间】:2014-09-25 04:24:44 【问题描述】:我正在尝试使用 pivot 来显示我的信息。我想使用子查询来选择报告中的列:
select * from
(select continent, country, population
from continents, countries
where continents.id=countries.id
)
pivot (sum(population) for country in (select distinct country from countries)
当我尝试使用子查询获取国家/地区列表时,我不断收到错误消息。
我尝试使用数据透视 XML,但这也不起作用,因为它返回了无意义的 xml 代码。 我想看看实际数字!
【问题讨论】:
你好。您可以发布您的表格结构和一些示例数据吗?另外请尝试使用 ANSI-92 JOIN 语法而不是 ANSI-89。 流水线函数 (oracle-base.com/articles/misc/pipelined-table-functions.php) 【参考方案1】:您不能在 PIVOT 子句中使用子查询的结果,因为列需要静态定义。但是您可以使用子查询的结果生成动态 SQL,然后通过立即执行来执行它。
【讨论】:
以上是关于使用子查询 oracle sql 进行数据透视的主要内容,如果未能解决你的问题,请参考以下文章
使用 Sql Developer Oracle 的动态数据透视查询