将IIF转换为CASE - 帮助审核转化

时间:2016-06-23 17:02:48

标签: sql vb6 case iif

我想请求帮助查看转换我刚刚接受了一段VB6代码并将其转换为SQL语法。

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

1 个答案:

答案 0 :(得分:1)

转换没问题,但可以做得更好。与IIF不同,case支持多种情况,因此您可以节省自己的嵌套。此外,由于您的所有比较都在[Type]列上,因此这是使用简写语法的绝佳机会:

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