Sql server SQLServer2005中的IIF语句

Sql server SQLServer2005中的IIF语句,sql-server,sql-server-2005,iif,Sql Server,Sql Server 2005,Iif,IIF语句是否存在于所有版本的SQL Server中 我查了一篇关于这个问题的教程 但是当我试着在我的机器上运行这个代码时 DECLARE @newDate datetime SET @newDate = CONVERT(varchar, {fn NOW()}, 111) SELECT IIF(@newDate > '2010/12/2', 'Greater', 'smaller') 但我得到的错误是“>”附近的语法不正确。” 有人能给我举一个SQL Server 2005中存在IIF

IIF
语句是否存在于所有版本的SQL Server中

我查了一篇关于这个问题的教程

但是当我试着在我的机器上运行这个代码时

DECLARE @newDate datetime
SET @newDate =  CONVERT(varchar, {fn NOW()}, 111)
SELECT IIF(@newDate > '2010/12/2', 'Greater', 'smaller')
但我得到的错误是“>”附近的语法不正确。”


有人能给我举一个SQL Server 2005中存在
IIF
语句的例子吗?

只有
IIF
语句存在于MDX中,MDX是SQL Server分析服务的查询语言,SQL Server的数据仓库端

普通T-SQL不具有
IIF
语句

在T-SQL中,最好使用
案例。。。。什么时候然后…
语句。

最好使用表达式:

DECLARE @newDate datetime
SET @newDate =  CONVERT(varchar, {fn NOW()}, 111)
SELECT CASE WHEN @newDate > '20101202' THEN 'Greater' ELSE 'smaller' END
还请注意,我已将日期文字转换为安全格式—“2010/12/2”可由SQL server解释为2月12日或12月2日。

IIF([Add DVP Month].DevelopmentMonth>[Add DVP Month].COVMONTHS,
   IIF([Add DVP Month].DevelopmentMonth>[Add DVP Month].COVMONTHS,
       1,
   IIF([STATUS]<>'1',
       1, 
   IIF([Add DVP Month].PLANTYPE = 'A' and [Add DVP Month].newUsedProgram = 'U' and [Add DVP Month].COVMONTHS = 60 and [Add DVP Month].COVMILES = 100000 and [Add DVP Month].postedDt >= #1/31/2010#,
   IIF([Add DVP Month].postedDt >= #1/31/2012#, 
       [EPMthd.PCM2],   
   IIF([Add DVP Month].postedDt >= #1/31/2010#, 
   [EPMthd.PCM1], 
   [EPMthd.PCM0])
   ),
   IIF([Add DVP Month].COVMONTHS = 999,[EPMthd.2],
   IIF([Add DVP Month].postedDt >= #1/31/2012#, [EPMthd.2],
   IIF([Add DVP Month].postedDt >= #1/31/2010#, [EPMthd.1],
   IIF([Add DVP Month].postedDt >= #1/31/2008#, 
   IIF([EPMthd.0] is null, 
       [EPMthd.8], 
       [EPMthd.0]
      ),
   IIF([Add DVP Month].postedDt < #1/31/2008#, 
   IIF([EPMthd.8] is null, 
   IIF([Add DVP Month].COVMONTHS = 0,0, 
       [Add DVP Month].DevelopmentMonth/[Add DVP Month].COVMONTHS
      ),
       [EPMthd.8]
    ),
   IIF([Add DVP Month].COVMONTHS = 0,
   0, 
       [Add DVP Month].DevelopmentMonth/[Add DVP Month].COVMONTHS
    )
   )
 ))))))
 ) AS [EP%]
1. IIF([状态]'1', 1. IIF([Add-DVP-Month]。PlantType='A'和[Add-DVP-Month]。newUsedProgram='U'和[Add-DVP-Month]。COVMONTHS=60和[Add-DVP-Month]。COVMILES=100000和[Add-DVP-Month]。postedDt>=#1/31/2010#, IIF([添加DVP月]。发布日期>=#2012年1月31日#, [EPMthd.PCM2], IIF([添加DVP月]。发布日期>=#1/31/2010#, [EPMthd.PCM1], [EPMthd.PCM0]) ), IIF([Add DVP Month].COVMONTHS=999[EPMthd.2], IIF([Add DVP Month].postedDt>=#1/31/2012#,[EPMthd.2], IIF([Add DVP Month].postedDt>=#1/31/2010#,[EPMthd.1], IIF([添加DVP月].postedDt>=#1/31/2008#, IIF([EPMthd.0]为空, [EPMthd.8], [EPMthd.0] ), IIF([添加DVP月]。发布日期<#1/31/2008#, IIF([EPMthd.8]为空, IIF([添加DVP月].COVMONTHS=0,0, [添加DVP月]。开发月/[添加DVP月]。开发月 ), [EPMthd.8] ), IIF([添加DVP月].COVMONTHS=0, 0, [添加DVP月]。开发月/[添加DVP月]。开发月 ) ) )))))) )作为[EP%]
UPDATE:SQL Server 2012现在有一个IIF语句@索曼特拉:是的——但这在2010年12月还不为人所知,OP询问的是SQL Server 2005。标题是2005,但他的第一个问题是“IIF语句是否存在于所有版本的SQL Server中?”。希望将来有人能在这篇文章中找到有用的东西。;-)这只是一个垃圾站。这不是问题所在,与SQL Server的语法完全不同