SQL Server ISNULL 函数用于验证表达式是否为 NULL。如果为 NULL,ISNULL 函数会用一个替换值来替换它。否则,它将返回原始值。
例如,在选择所有产品的折扣价格时,如果您的结果返回了一些 NULL 值怎么办?我们可以使用 ISNULL 来处理这些情况。SQL Server ISNULL 函数的语法是
SELECT ISNULL([Check_Expression], [Replace_Expression]) FROM [Source]
如果您观察上面的语法,SQL Server ISNULL 函数通过接受两个参数返回结果
- Check_Expression:请指定您要检查 NULL 值的有效表达式或列名。这将检查此列中的 NULL 值。
- Replacing_Expression:请指定您要替换 NULL 的有效表达式。此方法将用此 Replacing_Expression 替换 Check_Expression 中的那些值。
如果 Check_Expression 为 NULL,则返回 Replacing_Expression。否则,Check_Expression 将返回。对于此 ISNULL 函数示例,我们使用以下显示的数据。

SQL Server ISNULL 示例
如果您观察上面的屏幕截图,LastName 列中有一些 NULL 值,并且 [AddressLine2] 只包含 NULL 值。在此 ISNULL 示例中,我们将使用此函数将 Lastname 列替换为 'tutorialgateway',并将 [AdressLine2] 列替换为 '** Same as AdressLine 1 **'
SELECT [CustomerKey]
,[FirstName]
,ISNULL([LastName], 'tutorialgateway') AS [LastName]
,[EmailAddress]
,[YearlyIncome]
,[EnglishOccupation]
,[AddressLine1]
,ISNULL([AddressLine2], '** Same as AdressLine 1 **') AS [AddressLine2]
,[Phone]
FROM [TenCustomers]

在下面的 ISNULL 语句中,我们使用该函数将 [Lastname] 列中的 NULL 值替换为 'tutorialgateway' 字符串。
我们还使用 ALIAS 列将旧名称 'LastName' 重新分配给该结果。除了直接将字符串值作为第二个参数,您还可以使用 SQL Server 变量。
ISNULL([LastName], 'tutorialgateway') AS [LastName]
在下面的语句中,我们使用该函数将 [AdressLine2] 列中的值替换为 '** Same as AdressLine 1 **' 字符串。我们还使用 ALIAS 列将旧名称 [AddressLine2] 重新分配给该结果。
ISNULL([AddressLine2], '** Same as AdressLine 1 **') AS [AddressLine2]