2016-09-27 62 views
1

我試圖使用IIF首次代替CASE和SQL Server引發此錯誤:SQL Server 2008 R2的:TSQL IIF查詢不承認

Msg 102, Level 15, State 1, Line 9
Incorrect syntax near '>'.

我的代碼:

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 

我不明白這與MSDN的指導方針有何不同。

回答

4

IIF在SQL Server 2012中引入瞭如你標記你的問題與SQL Server 2008我會說,是問題的根源。

您的語法是有效的,代碼可以在新版本中使用。

+0

由於不是以英語爲母語,我不知道,如果'was'是第一句正確的時態,或者是否應該是'were'。有人能啓發我嗎? – jpw

+1

「was」在這裏是正確的。當你談到複數情況時,「是」是合適的。 「IIF在2012年推出」「IIF和COLUMNSTORE在2012年推出」 –

+0

@DaveMarkle感謝您爲我澄清它。 – jpw