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的语法完全不同