MariaDB ISNULL() 函数用于测试表达式是否为 NULL。如果表达式为 NULL 值,则该函数返回 1。如果表达式不是NULL值,该函数返回0。
语法
ISNULL(expression)
参数
expression | 必需。 指定要测试的值为 NULL。 |
返回值
如果表达式为 NULL 值,则该函数返回 1。如果表达式不是NULL值,该函数返回0。
示例1:
下面的示例显示了ISNULL()的用法 函数。
SELECT ISNULL('Paris');
Result: 0
SELECT ISNULL(NULL);
Result: 1
SELECT ISNULL(5/0);
Result: 1
SELECT ISNULL(DATE('2018-10-15'));
Result: 0
SELECT ISNULL(DATE(NULL));
Result: 1
SELECT ISNULL('');
Result: 0
示例 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 值,则可以使用函数与 IF 语句结合为该列提供替代值。
SELECT *,
Price * (StockQuantity + IF(ISNULL(OrderQuantity), 0, 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 | 225.75 |
Watermelon | 3.50 | 75 | 15 | 315.0 |