【问题标题】:SQL Server IIF vs CASESQL Server IIF 与 CASE
【发布时间】:2014-05-15 09:03:23
【问题描述】:

我最近了解了 SQL Server 2012 中 IIF 函数的可用性。我总是在查询中使用嵌套的 CASE。我想知道IIF 语句的确切用途,以及我们何时应该更喜欢在查询中使用IIF 而不是CASE 语句。 我在查询中主要使用嵌套的CASE

感谢所有输入。

【问题讨论】:

  • IIF 只是简单 CASE 语句的简写。它甚至被翻译成用于查询优化和执行的case语句:technet.microsoft.com/en-us/library/hh213574.aspx
  • 很遗憾,速记不是标准的一部分(现在是什么?ANSISQL?),因为它更容易阅读。但是后来T-SQL一直有点……“罗嗦”。

标签: sql-server sql-server-2012 case iif


【解决方案1】:

IIFCASE WHEN <Condition> THEN <true part> ELSE <false part> END 相同。查询计划将是相同的。它可能是最初实现的“语法糖”。

CASE 可跨所有 SQL 平台移植,而 IIF 是 SQL SERVER 2012+ 特定的。

【讨论】:

  • 可能是为了让 Access/VB 开发人员更容易记住语法。
【解决方案2】:

IIF 是一个非标准的 T-SQL 函数。它被添加到 SQL SERVER 2012,以便 Access 可以迁移到 SQL Server,而无需事先将 IIF 重构为 CASE。一旦 Access db 完全迁移到 SQL Server 中,您就可以重构了。

【讨论】:

  • 我喜欢你的推理。你能引用一些文档来支持它吗?
猜你喜欢
  • 2020-11-23
  • 1970-01-01
  • 2014-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多