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