如果列包含 NULL 值,则 NULL 函数可用于提供列的替代值。在 SQLite 中,有两个函数可以用于此目的:

  • IFNULL() 函数
  • COALESCE() 函数

示例:

考虑一个名为 Product 的数据库表,其中包含以下记录:

ProductNamePriceStockQuantityOrderQuantity
Apple1.0010020
Banana1.2512030
Orange2.15105NULL
Watermelon3.507515

如果OrderQuantity是可选的并且可以包含NULL值。下面提到的语句将给出 NULL 值。

SELECT *, Price * (StockQuantity + OrderQuantity) AS Inventory
FROM Product; 

这将产生如下所示的结果:

ProductNamePriceStockQuantityOrderQuantityInventory
Apple1.0010020120.0
Banana1.2512030187.5
Orange2.15105NULLNULL
Watermelon3.507515315.0

为了避免这种情况,使用 NULL 函数来提供替代值如果列包含 NULL 值,则返回该列。

SQLite IFNULL() 函数

SQLite IFNULL() 函数允许您在列值为 NULL 时提供替代值。如果值为 NULL,下面的语句将返回 0。

SELECT *, Price * (StockQuantity + IFNULL(OrderQuantity, 0)) AS Inventory
FROM Product; 

这将产生如下所示的结果:

ProductNamePriceStockQuantityOrderQuantityInventory
Apple1.0010020120.0
Banana1.2512030187.5
Orange2.15105NULL225.75
Watermelon3.507515315.0

SQLite COALESCE() 函数

SQLite COALESCE() 函数与 SQLite IFNULL() 函数具有相同的用途。上述查询与以下查询相同:

SELECT *, Price * (StockQuantity + COALESCE(OrderQuantity, 0)) AS Inventory
FROM Product; 

这将产生如下所示的结果:

ProductNamePriceStockQuantityOrderQuantityInventory
Apple1.0010020120.0
Banana1.2512030187.5
Orange2.15105NULL225.75
Watermelon3.507515315.0