有很多选项可用于使用 select 语句替换 NULL 值。您可以使用 CASE 语句或 IFNULL() 或 COALESCE()情况 1 - 使用 IFNULL()IFNULL( 的语法)如下 -SELECT IFNULL(y
有很多选项可用于使用 select 语句替换 NULL 值。您可以使用 CASE 语句或 IFNULL() 或 COALESCE()
情况 1 - 使用 IFNULL()
IFNULL( 的语法)如下 -
SELECT IFNULL(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;
情况 2 - 使用 COALESCE()
COALESCE() 的语法如下 -
SELECT COALESCE(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;
情况 3 - 使用 CASE 语句
CASE 语句的语法。
SELECT CASE
WHEN yourColumnName IS NULL THEN ‘yourValue’
ELSE yourColumnName END AS anyVariableName FROM yourTableName
为了理解我们上面讨论的内容,让我们创建一个表格。创建表的查询如下 -
Mysql> create table ReplaceNULLDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> Name varchar(10),
-> Marks int,
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.62 sec)
使用插入命令在表中插入一些记录。查询如下 -
mysql> insert into ReplaceNULLDemo(Name,Marks) values('Larry',90);
Query OK, 1 row affected (0.16 sec)
mysql> insert into ReplaceNULLDemo(Name,Marks) values('Carol',NULL);
Query OK, 1 row affected (0.17 sec)
mysql> insert into ReplaceNULLDemo(Name,Marks) values('David',NULL);
Query OK, 1 row affected (0.14 sec)
mysql> insert into ReplaceNULLDemo(Name,Marks) values('Bob',67);
Query OK, 1 row affected (0.17 sec)
mysql> insert into ReplaceNULLDemo(Name,Marks) values('Sam',78);
Query OK, 1 row affected (0.19 sec)
mysql> insert into ReplaceNULLDemo(Name,Marks) values('Mike',NULL);
Query OK, 1 row affected (0.19 sec)
mysql> insert into ReplaceNULLDemo(Name,Marks) values('John',98);
Query OK, 1 row affected (0.16 sec)
使用 select 语句显示表中的所有记录。查询如下 -
mysql> select *from ReplaceNULLDemo;
以下是输出 -
+----+-------+-------+
| Id | Name | Marks |
+----+-------+-------+
| 1 | Larry | 90 |
| 2 | Carol | NULL |
| 3 | David | NULL |
| 4 | Bob | 67 |
| 5 | Sam | 78 |
| 6 | Mike | NULL |
| 7 | John | 98 |
+----+-------+-------+
7 rows in set (0.00 sec)
现在让我们将 NULL 值转换为 0。
情况 1 - 使用 IFNULL()
查询如下-
mysql> select ifnull(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;
以下是显示 NULL 替换为 0 的输出 -
+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
| 90 |
| 0 |
| 0 |
| 67 |
| 78 |
| 0 |
| 98 |
+------------------------+
7 rows in set (0.00 sec)
情况 2 - 使用 COALESCE()
查询如下 -
mysql> select coalesce(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;
以下是显示 NULL 替换为 0 的输出 -
+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
| 90 |
| 0 |
| 0 |
| 67 |
| 78 |
| 0 |
| 98 |
+------------------------+
7 rows in set (0.00 sec)
情况 3 - 使用 CASE 语句。
查询如下 -
mysql> select case
-> when Marks is null then 0
-> else Marks end as ReplacementOfNULLWith0
-> from ReplaceNULLDemo;
以下是显示 NULL 替换为 0 的输出 -
+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
| 90 |
| 0 |
| 0 |
| 67 |
| 78 |
| 0 |
| 98 |
+------------------------+
7 rows in set (0.00 sec)
--结束END--
本文标题: 在 MySQL 中使用 SELECT 语句替换空值有哪些不同的方法?
本文链接: https://www.lsjlt.com/news/436861.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-11
2024-05-11
2024-05-11
2024-05-11
2024-05-11
2024-05-11
2024-05-11
2024-05-11
2024-05-11
2024-05-11
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0