2013-08-02 5 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, которые вы можете использовать для получения разных столбцов, а затем псевдоним.

Смежные вопросы