我想在SQL Server 2012管理工作室(連接到SQL Server 2012)中使用IIF。我可以在Access中生成我需要的東西,但SQL Server中的語法讓我感到沮喪。即使是一些簡單的像IIF與SQL Server 2012的麻煩
SELECT IIF(dbo.GL_Register.Credit_Or_Debit = C,'true','false')
from dbo.GL_Register
應該工作,但帶回了以下錯誤:「錯誤列表功能參數:‘=’無法識別無法分析查詢文本
這是很容易做到的。?。訪問我在做什麼錯了感謝
更新,得到了它的使用「喜歡」,而不是平等於是說「FROM」半路工作是一個問題:
SELECT dbo.GL_Account.Account_Code, dbo.GL_Register.Date,
SUM(IIF(dbo.GL_Register.Credit_Or_Debit like 'C',-
dbo.GL_Register.Amount,dbo.GL_Register.Amount) AS Expr1
FROM dbo.GL_Register INNER JOIN
dbo.GL_Account ON dbo.GL_Register.Account_Id = dbo.GL_Account.Account_Id
GROUP BY dbo.GL_Account.Account_Code, dbo.GL_Register.Date
HAVING (dbo.GL_Account.Account_Code = N'11000')
交流塞斯SQL的作品就像一個魅力是:
SELECT dbo_GL_Account.Account_Code, dbo_GL_Register.Date,
Sum(IIf([Credit_Or_Debit]="C",-[Amount],[Amount])) AS Amount2
FROM dbo_GL_Register INNER JOIN dbo_GL_Account ON dbo_GL_Register.Account_Id
= dbo_GL_Account.Account_Id
GROUP BY dbo_GL_Account.Account_Code, dbo_GL_Register.Date
HAVING (((dbo_GL_Account.Account_Code)="11000"));
我用「CASE」並能夠做我所需要的。但出於好奇心,我又回去嘗試了你的IIF,並得到了「函數參數列表中的錯誤:'='未被識別。」我仍然不確定爲什麼這不適合我。如果我不得不猜測這是因爲該字段不是數字,因此不喜歡「=」。 – Bouje
列類型不應該是問題。這令人驚訝,不適合你!我唯一的猜測是你的數據庫被設置爲以前的版本(比2012年老)。檢查數據庫上的屬性>選項>兼容性。 – FLICKER