2017-01-24 29 views
-1

DATA:將多列到一個基於價值從一列

+--------+------+------+------+------+ 
| WEEK_NO| Week1| Week2| Week3|Week4 | 
+--------+------+------+------+------+ 
|  1 | 0.5 | 0.2 | 0.3 |0.4 | 
|  2 | 0.5 | 0.2 | 0.3 |0.4 | 
|  3 | 0.5 | 0.2 | 0.3 |0.4 | 
|  4 | 0.5 | 0.2 | 0.3 |0.4 | 
+--------+------+------+------+------+ 

所需的輸出:

+--------+------+------+------+------+-------------+ 
| WEEK_NO| Week1| Week2| Week3|Week4 |COLUMN NEEDED| 
+--------+------+------+------+------+-------------+ 
|  1 | 0.5 | 0.2 | 0.3 |0.4 | 0.5  | 
|  2 | 0.5 | 0.2 | 0.3 |0.4 | 0.2  | 
|  3 | 0.5 | 0.2 | 0.3 |0.4 | 0.3  | 
|  4 | 0.5 | 0.2 | 0.3 |0.4 | 0.4  | 
+--------+------+------+------+------+-------------+ 
+1

它會以不愉快的病例陳述結束......例如:'CASE WHEN WEEK_NO = 1 then WEEK1' ..但爲什麼數據會以這種方式保存?也許是一個測驗! –

+0

這聽起來好像你應該考慮規範你的數據模型。 –

+0

@a_horse_with_no_name \t 我同意你的觀點,但不知何故,數據是在上述結構,不能改變在源 –

回答

1

使用CASE聲明

SELECT CASE 
     WHEN WEEK_NO = 1 THEN Week1 
     WHEN WEEK_NO = 2 THEN Week2 
     WHEN WEEK_NO = 3 THEN Week3 
     WHEN WEEK_NO = 4 THEN Week4 
     END AS "COLUMN NEEDED" 
FROM yourtable 

或者使用Decode

Select DECODE (WEEK_NO, 1, Week1, 
         2, Week2, 
         3, Week3, 
         4, Week4) 
From yourtable 

考慮更改表結構

+0

我試過這個,但它不適用於PL/SQL過程,下面是我試過 代碼試用: 選擇案例substr(to_char(WEEK_NO,種子編號), - 2,2) 當'01'時,則W1 當'02'時則W2 當'03'時,則W3 。 。 。 。 '49' 時,那麼W49 '50' 時,那麼W50 時, '五一',那麼W51 則 '52' 時,W52 END作爲WEEK_COEFF FROM表 –

+0

@Abhijeetsingh - 您是否收到任何錯誤? –

+0

錯誤: ORA-06550:第22行,第7列: PLS-00103:遇到以下符號之一時遇到符號「01」: *&= - +; at in是mod的餘數,不是rem <指數(**)><>或!=或= => = <= <>和或類似的像like4 likec between || multiset成員submultiset 06550。00000 - 「行%s,列%s:\ n%s」 *原因:通常是PL/SQL編譯錯誤。 *操作: –

0

這些重複的數據在原表中的行是非常可疑的。顯然,我們對這個結構的目的一無所知,但它看起來像是數據建模的失敗。應用First Normal Form會給...

create table weeks (
    week_no number primary key 
    , week_coeff number not null) 
/

所以查詢將是:

select week_no 
     , week_coeff as column_needed 
from weeks 
/

如果這似乎太簡單化,那麼請解釋一下你正在建模的業務規則。


「但不知數據在上述結構來與不能在源被改變。」

當然它可以被改變,它只是一個數據結構。但辦公室政治是辦公室政治。祝你好運,建立可怕的,脆弱的代碼。

+0

有你的點,但不知何故數據在上述結構來與不能在所述被改變資源 。 –

相關問題