【问题标题】:Have unpivot automatically grab column list (oracle 11g)让 unpivot 自动抓取列列表(oracle 11g)
【发布时间】:2011-01-21 15:32:39
【问题描述】:

这是Transpose one row into many rows Oracle的后续问题

我希望能够对任意查询结果进行反透视。

要手动取消透视表,我会这样做:

select value_type, value from (
 (
  -- query to be unpivoted
  -- EG: select col1, col2, col3, col4, col5 from table
 )
 unpivot
 (
  -- Line I would like to change
  value for value_type in (col1, col2, col3, col4, col5)
 )
);

这适用于所有返回 5 列的查询,称为 col1, col2 等。我是否输入了一些东西而不是 value for value_type in (col1, col2, col3, col4, col5),它将从查询/视图/表中选择的所有列名第一部分?

【问题讨论】:

    标签: sql oracle oracle11g unpivot


    【解决方案1】:

    您可以在 PL/SQL 中创建一个存储过程来执行此操作,方法是动态地将您的 SQL 语句创建为字符串,然后使用 execute immediate 执行它并返回一个游标。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多