How To Map NULL Values To Other Meaningful Values

摘要在本教程中,您将学习如何将NULL值映射到其他有意义的值。

数据库关系模型的创建者EFCodd博士在关系数据库理论中引入了NULL概念。根据 Dr.EFCodd 的说法, NULL意味着未知值或丢失信息。

MySQL 还支持NULL ,它表示丢失或不适用信息的概念。

在数据库表中,您存储包含NULL值的数据。当您以报告的形式向用户呈现数据时,显示NULL值是没有意义的。

为了使报告更易于阅读和理解,您必须将NULL值显示为其他值,例如未知、缺失或不可用 (N/A)。为此,您可以使用IF 函数

IF函数的语法如下:

IF(exp,exp_result1,exp_result2);Code language: SQL (Structured Query Language) (sql)

如果exp计算结果为TRUE (当exp <> 0exp <> NULL时), IF函数返回exp_result1的值,否则返回exp_result2的值

IF函数的返回值可以是字符串或数字,具体取决于exp_result1exp_result2表达式

让我们用一些例子来练习以获得更好的理解。

我们将使用示例数据库中的customers表。

以下是customers表中的部分数据,包括customername statecountry

SELECT 
    customername, state, country
FROM
    customers
ORDER BY country;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL NULL 值示例

从上面的结果集中,您可以看到状态值对于某些客户不可用。您可以使用IF函数将NULL值显示为N/A

SELECT 
    customername, IF(state IS NULL, 'N/A', state) state, country
FROM
    customers
ORDER BY country;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL NULL 作为 NA 值

除了 IF 函数外,MySQL 还提供了IFNULL 允许您直接处理NULL值的函数。以下是IFNULL函数的语法:

IFNULL(exp,exp_result);Code language: SQL (Structured Query Language) (sql)

试试看

如果exp计算结果为NULL值,则IFNULL函数返回exp_result表达式的值,否则返回exp表达式的值。

以下查询使用IFNULL函数将NULL显示为未知,如下所示:

SELECT customername, 
       IFNULL(state,"N/A") state, 
       country
FROM customers
ORDER BY country;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL NULL 与 IFNULL 函数

在本教程中,您学习了如何使用IFIFNULL函数将 NULL 值映射到其他更有意义的值,以便以可读的方式呈现数据。

本教程有帮助吗?