【问题标题】:Display rows as columns in oracle 11g在 oracle 11g 中将行显示为列
【发布时间】:2013-09-20 15:13:44
【问题描述】:

下面需要你的帮助,我必须从我的桌子上实现以下目标。

EMP 表

Record Id    EMP Id    Emp Name    Emp Dept
--------     -------   -------     --------
     1        123        ABC         Sales
     2     -  231        PQR         DEPT

我想要以下格式的输出

Record ID     Table Name   Column Name  column Values
--------      ----------   -----------  -------------
1              EMP          EMP Id      123
1              EMP          Emp Name    ABC
1              EMP          EMP Dept    Sales

此输出是否可能,如果有人可以提供示例查询,将非常感谢

【问题讨论】:

标签: oracle11g pivot


【解决方案1】:

您可以使用临时表尝试类似的操作。

临时表架构

Record ID     Table Name   Column Name  column Values

查询

BEGIN

FOR t IN (SELECT table_name,column_name
          FROM all_tab_columns
          WHERE table_name='MyTable' and owner='MySchema' and column_name<>'RecordId' ) LOOP

EXECUTE IMMEDIATE
          'INSERT INTO temp_table SELECT RecordId,'''||t.table_name||''','''||t.column_name||''','||t.column_name||' FROM ' ||  t.table_name;
      END LOOP;
COMMIT;  
END;

/

SELECT *
FROM temp_table
ORDER BY "RecordId";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 2014-07-15
    相关资源
    最近更新 更多