将 Jet SQL IsNull 更改为 SQL IsNull 函数

Changing Jet SQL IsNull to to SQL IsNull Function

我在 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 认为它是一个列名

你要检查 [Book ID] 是否为空。如果它为空,那么您将前往 return -1 否则您将前往 return [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