SQL Server IIF与案例


87

最近,我开始了解IIFSQL Server 2012中功能的可用性。我始终CASE在查询中使用嵌套。我想知道该IIF语句的确切目的,以及我们何时应该在查询中首选使用IIFoverCASE语句。我主要CASE在查询中使用嵌套。

感谢您的所有投入。


9
IIF只是简单CASE语句的简写。甚至可以将其转换为用于查询优化和执行的案例声明:technet.microsoft.com/en-us/library/hh213574.aspx
Sam DeHaan 2014年

简写不是标准(现在是什么?ANSISQL?)的一部分,很遗憾,因为它更易于阅读。但是后来T-SQL一直有点...“罗word”。
尼尔·巴恩威尔

Answers:


144

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

CASE可在所有SQL平台上移植,而IIF特定于SQL SERVER 2012+。


6
可能是为了使Access / VB开发人员更容易记住语法。
有趣的名字,这里

20

IIF是非标准的T-SQL函数。它已添加到SQL SERVER 2012,以便Access可以迁移到SQL Server,而无需事先将IIF重构为CASE。将Access数据库完全迁移到SQL Server之后,即可进行重构。


12
我喜欢你的推理。您可以通过引用一些文档来支持它吗?
彼得·伊凡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.