用于更改值的SQL case语句

用于更改值的SQL case语句,sql,plsql,unpivot,Sql,Plsql,Unpivot,这是我想做的部分工作的代码: SELECT uID, ColumnName, ColumnResult FROM table UNPIVOT ( ColumnResult for ColumnName in (COL1,COL2,COL3) )u 这将返回如下内容: 谢谢您可以使用以下查询将列名替换为新值: select uID, case ColumnName when 'COL1' then 'columnOne' when 'COL2' then 'columnT

这是我想做的部分工作的代码:

SELECT uID, ColumnName, ColumnResult
FROM table
UNPIVOT
(
ColumnResult
for ColumnName in (COL1,COL2,COL3)
 )u
这将返回如下内容:


谢谢

您可以使用以下查询将列名替换为新值:

select uID,
  case ColumnName 
    when 'COL1' then 'columnOne'
    when 'COL2' then 'columnTwo'
    when 'COL3' then 'columnThree'
  end ColumnName, 
  ColumnResult
from TABLE
unpivot
(
  ColumnResult
  for ColumnName in (COL1,COL2,COL3)
)u;

参见

本案例的另一种可能扩展得更好的替代方案:

'column'||regexp_replace(to_char(to_date(substr(ColumnName,4),'J'),'Jsp'),'[ -]','') ColumnName, 
这项工作将持续数百年