SQL Server 2008 r2:无法识别TSQL IIF查询

SQL Server 2008 r2:无法识别TSQL IIF查询,tsql,sql-server-2008-r2,iif,Tsql,Sql Server 2008 R2,Iif,我第一次尝试使用IIF而不是CASE,SQL Server抛出以下错误: Msg 102,15级,状态1,第9行 “>”附近的语法不正确 我的代码: DECLARE @lDate date = CONVERT(date,GETDATE()); DECLARE @lMonth int = MONTH(@lDate); DECLARE @lDay int = DAY(@lDate); DECLARE @lPeriodStart date, @lPeriodEnd date, @lPayPeriod

我第一次尝试使用IIF而不是CASE,SQL Server抛出以下错误:

Msg 102,15级,状态1,第9行 “>”附近的语法不正确

我的代码:

DECLARE @lDate date = CONVERT(date,GETDATE());
DECLARE @lMonth int = MONTH(@lDate);
DECLARE @lDay int = DAY(@lDate);

DECLARE @lPeriodStart date, @lPeriodEnd date, @lPayPeriod int, @lCutOffDay int = 14;

--there are 24 pay periods find which one
SET @lPayPeriod = @lMonth * 2 - IIF(@lDay > @lCutOffDay, 0, 1);

SELECT @lPayPeriod
我不明白这与SQL Server 2012中引入IIF的指南有什么不同。由于您已经用SQL Server 2008标记了您的问题,我认为这就是问题的根源

您的语法有效,代码将在更新版本中运行。

IIF是在SQL Server 2012中引入的。由于您已经用SQL Server 2008标记了您的问题,我认为这就是问题的根源


您的语法是有效的,代码将在更新的版本中运行。

不是以英语为母语的人,我不确定第一句中的was是正确的时态,还是应该是正确的时态。有人能告诉我吗?这里的答案是正确的。当你谈论复数时,wave是合适的。SS2012引入了IIF,SS2012引入了IIF和COLUMNSTORE2012@DaveMarkle谢谢你为我澄清。作为一个以英语为母语的人,我不确定第一句话中的是正确时态,还是应该是正确时态。有人能告诉我吗?这里的答案是正确的。当你谈论复数时,wave是合适的。SS2012引入了IIF,SS2012引入了IIF和COLUMNSTORE2012@DaveMarkle谢谢你为我澄清。