我来自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
和案例。都给了我不同的错误。请帮帮我。
答案 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版本中的新功能。