一尘不染

取消透视自动获取列列表(oracle 11g)

sql

我希望能够取消任意查询结果。

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

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)从第一部分中选择的查询/视图/表中获取所有列名的东西?


阅读 149

收藏
2021-05-30

共1个答案

一尘不染

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

2021-05-30