2013-08-02 66 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语句,您可以使用它们来获取不同的列,然后将其别名。