我在MS Access中有一个查询,试图更改为SQL视图
select语句的一部分是
IIf(IsNull([Book ID]),-1,[Book ID]) AS SubBookID
与Access不同,T-SQL希望为IsNull
函数提供2个参数。
我需要做的是类似
IIf(IsNull([Book ID],true),-1,[Book ID]) AS SubBookID
但是我们不能像这样使用true
,因为T-SQL认为它是列名
答案 0 :(得分:1)
您将检查[Book ID]
是否为空。如果为null,则将返回-1
,否则将返回[Book ID]
。
要实现此目的,您需要将其纠正为:
ISNULL([Book ID],-1) AS SubBookID
如您所见,在这种情况下,您不再需要IIF
函数。
详细了解T-SQL中的ISNULL
:https://docs.microsoft.com/en-us/sql/t-sql/functions/isnull-transact-sql?view=sql-server-2017