在Mysql中,如何将NULL值映射到其他有意义的值
时间:2019-11-20 08:52:28 来源:igfitidea点击:
简介:在本教程中,您将学习如何将NULL值映射到其他有意义的值。
数据库关系模型的创建者E.F. Codd博士在关系数据库理论中引入了NULL概念。
根据Dr.E.F. Codd的说法,NULL表示未知值或缺少信息。
MySQL还支持代表缺失或不适用信息概念的NULL。
在数据库表中,存储包含NULL值的数据。
当您以报表形式向用户显示数据时,显示NULL值没有任何意义。
为了使报告更具可读性和可理解性,您必须将NULL值显示为其他值,例如未知,丢失或不可用(N / A)。
为此,您可以使用IF函数。
IF函数的语法如下:
IF(exp,exp_result1,exp_result2);
如果exp的计算结果为TRUE(当exp <> 0和exp <> NULL时),则IF函数返回exp_result1的值,否则返回exp_result2的值。
IF函数的返回值可以是字符串或数字,具体取决于exp_result1和exp_result2表达式。
让我们通过一些示例进行练习,以更好地理解。
我们将使用示例数据库中的customers表。
以下是客户表中的部分数据,其中包括客户名的州和国家:
SELECT customername, state, country FROM customers ORDER BY country;
从上面的结果集中,您可以看到状态值不适用于某些客户。
您可以使用IF函数将NULL值显示为N / A:
SELECT customername, IF(state IS NULL, 'N/A', state) state, country FROM customers ORDER BY country;
除IF函数外,MySQL还提供IFNULL函数,该函数使您可以直接处理NULL值。
以下是IFNULL函数的语法:
IFNULL(exp,exp_result);
如果exp的计算结果为NULL值,则IFNULL函数将返回exp_result表达式的值,否则,它将返回exp表达式的值。
以下查询使用IFNULL函数将NULL显示为unknown,如下所示:
SELECT customername, IFNULL(state,"N/A") state, country FROM customers ORDER BY country;
在本教程中,您学习了如何使用IF和IFNULL函数将NULL值映射到其他更有意义的值,以便以可读的方式显示数据。