【问题标题】:Convert column names as row values in oracle在oracle中将列名转换为行值
【发布时间】:2016-06-30 17:45:06
【问题描述】:

我遇到了一个问题,我想将表的列名转换为行值,并将这些列名与这些列所属的表的数据结合起来。

我的数据表如下:

ID|QUERY_REF|COL_V1|COL_V2|COL_V3|COL_V4|COL_V5|COL_V6
1|Q127|hdaskjdhakdjsadj asudakjdakhdkjjdjkskjdjsakhasuygwyeqe1747434834094432uilknfja|||||

期望的输出

ID|QUERY_REF|COLUMNS
1|Q127|COL_V1
1|Q127|COL_V2
1|Q127|COL_V3
1|Q127|COL_V4
1|Q127|COL_V5
1|Q127|COL_V6

到目前为止,我已经在网上搜索过,但没有任何示例与我的问题相对应。

我开发了一个使用 union 的 select 语句。但这并没有给我想要的结果。请帮忙。

【问题讨论】:

    标签: oracle11g


    【解决方案1】:

    假设您只想要列中至少有一个值的列名,您可以为此使用unpivot

    select distinct ID, QUERY_REF, COLUMNS 
    from tableName
    UNPIVOT (cols FOR COLUMNS IN (COL_V1 AS 'COL_V1', COL_V2 AS 'COL_V2', COL_V3 AS 'COL_V3', COL_V4 AS 'COL_V4', COL_V5 AS 'COL_V5', COL_V6 AS 'COL_V6'));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2013-01-12
      • 2021-09-12
      • 1970-01-01
      相关资源
      最近更新 更多