2013-08-02 82 views
0

我有一個表格,我需要使用該術語來選擇適當的費率調整。問題是,每學期爲自己的列像這樣:基於另一列的值選擇列 - SQL

term 12mon 24mon 36mon 
----- ----- ----- ----- 
12  2  4  6 
24  2  4  6 

我需要,每個術語,以返回正確的調整。 因此,在12個月內,我需要一個「2」,而對於24個,它會是「4」等等。雖然極大地簡化了它,但捕獲了本質 - 我需要根據同一個表中另一列的值在表中選擇一個列名。 我無法更改源表。 在此先感謝...

回答

3

情況下是你的朋友

case term 
    when 12 then [12mon] 
    when 24 then [24mon] 
    when 36 then [36 mon] 
end as rate 

如果項的值可以是12和24之間等於是把它寫這樣(我不知道你的邏輯需求但是你明白了)

case 
    when term < 12 then 0 
    when term < 24 then [12mon] 
    when term < 36 then [24mon] 
    when term < 48 then [36mon] 
    else [48mon] 
end as rate 
0

什麼味道的SQL呢?

在其中大多數情況下,您可以使用CASE WHEN (predicate) THEN x語句,您可以使用它們來獲取不同的列,然後將其別名。