将 IIF 转换为 CASE - 帮助查看转换

Convert IIF to CASE - Help review conversion

我想请求帮助查看转换 我刚刚将一段 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

转换正常,但可以做得更好。与 IIF 不同,case 支持多种情况,因此您可以省去嵌套。此外,由于您所有的比较都在 [Type] 列中,因此这是使用 shorthand 语法的绝佳机会:

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