2016-06-23 2 views
0

Я хотел бы попросить о помощи в пересмотре конверсии. Я просто взял часть кода VB6 и превратил его в синтаксис SQL.Преобразование IIF в CASE - просмотр справки о пересмотре

VB6

IIF([Type] = 1, 26, IIF([Type] = 2, 27, 28)) 

SQL

CASE 
     WHEN [Type] = 1 THEN 26 
     ELSE 
      CASE 
       WHEN [Type] = 2 THEN 27 
       ELSE 28 
      END 
    END 
+2

она отлично работает в SQL – mohan111

+1

Нет необходимости для «внутреннего» 'case':' случай, когда [ Type] = 1 THEN 26 WHEN [Тип] = 2 THEN 27 ELSE 28 END' – Lamak

+1

Да, я согласен с @Lamak – mohan111

ответ

1

Конверсия в порядке, но можно было бы сделать лучше. В отличие от IIF, case поддерживает несколько случаев, поэтому вы можете сэкономить себе гнездование. Кроме того, поскольку все ваши сравнения на [Type] колонке, это отличная возможность использовать сокращенный синтаксис:

CASE [Type] 
    WHEN 1 THEN 26 
    WHEN 2 THEN 27 
    ELSE 28 
END 
Смежные вопросы