如何在MySQL中使用Coalesce?
MySQL中的Coalesce可用于返回第一个非null值。如果有多个列,且所有列都为NULL,则返回NULL,否则将返回第一个非null值。
语法如下:
SELECT COALESCE(yourColumnName1,yourColumnName2,yourColumnName3,.......N) as
anyVariableName from yourTableName;
为了理解上述语法,让我们先创建一个表。创建表的查询语句如下所示。
mysql> create table CoalesceDemo
-> (
-> Id int,
-> Name varchar(100),
-> Age int,
-> Address varchar(100)
-> );
Query OK, 0 rows affected (0.57 sec)
使用insert命令向表中插入一些记录。查询语句如下。
mysql> insert into CoalesceDemo values(1,NULL,NULL,NULL);
Query OK, 1 row affected (0.14 sec)
mysql> insert into CoalesceDemo values(NULL,'Mike',NULL,NULL);
Query OK, 1 row affected (0.17 sec)
mysql> insert into CoalesceDemo values(NULL,NULL,23,NULL);
Query OK, 1 row affected (0.24 sec)
mysql> insert into CoalesceDemo values(NULL,NULL,NULL,'UK');
Query OK, 1 row affected (0.14 sec)
mysql> insert into CoalesceDemo values(NULL,NULL,NULL,NULL);
Query OK, 1 row affected (0.17 sec)
使用select语句显示表中的所有记录。查询语句如下。
mysql> select *from CoalesceDemo;
其输出结果如下所示。
+------+------+------+---------+
| Id | Name | Age | Address |
+------+------+------+---------+
| 1 | NULL | NULL | NULL |
| NULL | Mike | NULL | NULL |
| NULL | NULL | 23 | NULL |
| NULL | NULL | NULL | UK |
| NULL | NULL | NULL | NULL |
+------+------+------+---------+
5 rows in set (0.00 sec)
以下是可以返回第一个非null值的所有情况。查询语句如下。
mysql> select Coalesce(Id,Name,Age,Address) as FirstNotNullValue from CoalesceDemo;
其输出结果如下所示。
+-------------------+
| FirstNotNullValue |
+-------------------+
| 1 |
| Mike |
| 23 |
| UK |
| NULL |
+-------------------+
5 rows in set (0.00 sec)
阅读更多:MySQL 教程