首页 > 解决方案 > SQL解析ORACLE 将行转换为列

问题描述

我有一个表结构,它有 2 列,如下所述

Column_name    old Value  New_Value 
:---------     :-------   :---------
Name            NULL       John
Age             NULL       45
Status          Active     Inactive

我需要像这样的输出

John     Name 
45       Age 
Inactive Status 

你能帮我吗?

标签: sqloracle

解决方案


对我来说看起来像NVL...第 1 - 5 行中的示例数据;执行它的查询从第 6 行开始。

SQL> with test (column_name, old_value, new_value) as
  2    (select 'Name'  , null    , 'John'     from dual union all
  3     select 'Age'   , null    , '45'       from dual union all
  4     select 'Status', 'Active', 'Inactive' from dual
  5    )
  6  select nvl(new_value, old_value) value,
  7         column_name
  8  from test;

VALUE    COLUMN
-------- ------
John     Name
45       Age
Inactive Status

SQL>

推荐阅读