具有子查询支持的PIVOT-IN的替代方法

Vij*_*ish 5 oracle oracle11g

根据oracle文档,PIVOT函数不支持" IN"子句中的子查询,但可以在PIVOTXML函数中使用.例如

SELECT *
FROM table_name
PIVOT
(
  SUM(column_name_1)
  FOR [column_name_2] IN (['Output_Column1'],['Output_Column2'])
)
AS aliasName
Run Code Online (Sandbox Code Playgroud)

我需要替换['Output_Column1'],['Output_Column2']with子查询.

是否有一些其他功能相当于PIVOT我们可以提供子查询而不是硬编码整个输出列甚至是PIVOT函数本身?

Mar*_*ski 1

不,在解析时必须知道列数。对于 PIVOT XML 来说没有问题,因为此类查询仅返回一列。

  • @VijayKrish 我的评论是关于任何 SQL 查询 - 你不能有可变数量的列,没有这样的选项。也许解释一下你想要实现的目标。为什么需要这样的东西? (2认同)