2012-05-15 7 views
2

Как я могу использовать вложенный запрос оператора case в SQL-запросе. Я пытаюсь выполнить следующий запрос.Вложенный оператор «CASE when»

SELECT AccessTabF1.Month, AccessTabF1.Year, AccessTabF1.[Entity Number], 
case when [Exp Year]= 2010 + 1 
    then 'Expires in 1 to 5 Years' 
    else 
      case when [Exp Year]>2010 + 5 
       then 'Expires After 5 Years' 
       else 'No Expiration Year Listed' 
end 
from AccessTabF1 
+6

Вам необходимо закрыть каждый случай с помощью 'end'. –

+3

Также просто быть понятным 'CASE' - это выражение, которое возвращает одно значение, а не инструкцию. Вызов этого заявления, вероятно, приводит к ошибочному представлению о том, что он используется для управления потоком, как на других языках. –

ответ

12

В вашем случае вам не нужно вставлять несколько выражений CASE.

SELECT AccessTabF1.Month, AccessTabF1.Year, AccessTabF1.[Entity Number], 
case when [Exp Year] = 2010 + 1 -- why not = 2011 ? 
    then 'Expires in 1 to 5 Years' -- this does not match the logic on line above 
    when [Exp Year] > 2010 + 5 -- why not > 2015 ? 
    then 'Expires After 5 Years' 
    else 'No Expiration Year Listed' 
end 
from AccessTabF1 
Смежные вопросы