2013-04-30 145 views
1

這是我的代碼做什麼,我想要做的部分:SQL case語句更改值

SELECT uID, ColumnName, ColumnResult 
FROM table 
UNPIVOT 
(
ColumnResult 
for ColumnName in (COL1,COL2,COL3) 
)u 

這將返回是這樣的:

感謝

回答

1

您可以使用以下查詢與新值將替換列名:

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; 

SQL Fiddle with Demo

+0

非常感謝! – user2213892 2013-04-30 20:48:17

1

的情況下的替代方案,可能會延長更好:

'column'||regexp_replace(to_char(to_date(substr(ColumnName,4),'J'),'Jsp'),'[ -]','') ColumnName, 

這個工程到數百人。