MariaDB 函数

MariaDB IFNULL() 函数用于在表达式为 NULL 时提供备用值。如果表达式不为空,此函数返回表达式。

语法

IFNULL(expression, value_if_null) 

参数

expression必填。 将要测试的值指定为 NULL。
value_if_null必需。 指定表达式为NULL时返回的值。

返回值

如果表达式不为空,返回表达式。如果表达式为NULL,则返回value_if_null。

示例1:

下面的示例显示了IFNULL的用法() 函数。

SELECT IFNULL('Paris', 'London');
Result: 'Paris'

SELECT IFNULL(NULL, 'London');
Result: 'London'

SELECT IFNULL(5/0, 'Dividing by 0 returns NULL');
Result: 'Dividing by 0 returns NULL'

SELECT IFNULL(DATE('2018-10-15'), '2018-10-31');
Result: '2018-10-15'

SELECT IFNULL(DATE(NULL), '2018-10-31');
Result: '2018-10-31' 

示例 2:

考虑一个名为 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

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

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

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

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