IFF语句错误' ='附近的语法不正确

时间:2012-11-20 09:29:54

标签: sql-server-2008 if-statement

我来自MySQL的背景,所以请在这里忍受我。使用MSSQL Server 2008,我正在编写一个包含IFF语句的查询。我收到以下错误。

"Msg 102, Level 15, State 1, Line 8
Incorrect syntax near '='."

我的查询如下:

SELECT
    a.[storeno],
    a.[Description],
    a.[transactiondate],
    a.[amount] AS 'pos',
    b.[amount] AS 'ecc',
    a.[amount] - b.[amount] AS 'difference',
    IIF(a.amount = b.amount,'BALANCED','UNBALANCED') AS 'result',
    GETDATE()
FROM
    [POS_REPORT].[dbo].[Txn_Daily_Totals] a
LEFT JOIN
    [POS_REPORT].[dbo].[SAP_FI_INBOUND_DAILY_TOTALS] b ON
    a.[storeno] +
    a.[transactiondate] =
    b.[storeno] +
    b.[transactiondate]

我尝试了很多不同的方法,但却无法做到这一点。我用过

IF
BEGIN
END
ELSE
END

和案例。都给了我不同的错误。请帮帮我。

2 个答案:

答案 0 :(得分:3)

你可以这样写:

case when a.amount = b.amount then 'BALANCED' else 'UNBALANCED' end as result

而不是

IIF(a.amount = b.amount,'BALANCED','UNBALANCED') AS 'result'

答案 1 :(得分:2)

IIF未在SQL Server 2008中实现。它是2012版本中的新功能。