SQL Server (Transact-SQL) ISNULL() 函数用于测试表达式是否为 NULL。如何表达式是NULL 则返回替换的值,如果不是则返回表达式本身。
语法
ISNULL(expression, replacement_value)
参数
expression | 必需。 将要测试的值指定为 NULL。 |
replacement_value | 必填。 指定 NULL 的替换值。 |
返回值
如何表达式是NULL 则返回替换的值,如果不是则返回表达式本身。
示例1:
下面的示例显示了ISNULL() 函数。
SELECT ISNULL('Paris', 'London');
Result: 'Paris'
SELECT ISNULL(NULL, 'London');
Result: 'London'
示例 2:
考虑一个名为 Product 的数据库表,其中包含以下记录:
ProductName | Price | StockQuantity | OrderQuantity |
---|---|---|---|
Apple | 1.00 | 100 | 20 |
Banana | 1.25 | 120 | 30 |
Orange | 2.15 | 105 | NULL |
Watermelon | 3.50 | 75 | 15 |
如果OrderQuantity是可选的并且可以包含NULL值。下面提到的语句将给出 NULL 值。
SELECT *, Price * (StockQuantity + OrderQuantity) AS Inventory
FROM Product;
这将产生如下所示的结果:
ProductName | Price | StockQuantity | OrderQuantity | Inventory |
---|---|---|---|---|
Apple | 1.00 | 100 | 20 | 120.0 |
Banana | 1.25 | 120 | 30 | 187.5 |
Orange | 2.15 | 105 | NULL | NULL |
Watermelon | 3.50 | 75 | 15 | 315.0 |
为了避免这种情况,ISNULL()如果列包含 NULL 值,则可以使用函数为该列提供替代值。
SELECT *,
Price * (StockQuantity + ISNULL(OrderQuantity, 0)) AS Inventory
FROM Product;
这将产生如下所示的结果:
ProductName | Price | StockQuantity | OrderQuantity | Inventory |
---|---|---|---|---|
Apple | 1.00 | 100 | 20 | 120.0 |
Banana | 1.25 | 120 | 30 | 187.5 |
Orange | 2.15 | 105 | NULL | 225.75 |
Watermelon | 3.50 | 75 | 15 | 315.0 |