如果列包含 NULL 值,则 NULL 函数可用于提供列的替代值。在 SQL Server (Transact-SQL) 中,ISNULL() 函数允许在表达式为 NULL 时返回替代值。
示例:
考虑一个名为 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 |
为了避免这种情况,使用 NULL 函数为列如果包含 NULL 值。
SQL Server (Transact-SQL) ISNULL() 函数
SQL Server (Transact-SQL) ISNULL() 函数允许您在列值为 NULL 时提供替代值。如果值为 NULL,下面的语句将返回 0。
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 |