mysql coalesce函数

Posted 明日何其多

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql coalesce函数相关的知识,希望对你有一定的参考价值。

 COALESCE函数从值列表中返回第一个非NULL的值,当遇到NULL值时将其替换为0。 coalesce(str1,str2....);

e.g.   需要在表中查出所有比‘WARD‘提成(COMM)低的员工,提成为NULL的员工也包括在内。 (个人意见,如果数据库提成字段默认值不是为0值的话肯定是开发那个的错)。

 

select ename,comm from emp where coalesce(comm,0) < (select comm from emp whrer ename ="WARD");

  结果:

+--------+------+
| ename  | comm |
+--------+------+
| SMITH  | NULL |
| ALLEN  |  300 |
| JONES  | NULL |
| BLAKE  | NULL |
| CLARK  | NULL |
| SCOTT  | NULL |
| KING   | NULL |
| TURNER |    0 |
| JAMES  | NULL |
| MILLER | NULL |
| ADAMS  | NULL |
| FORD   | NULL |
+--------+------+
12 rows in set

  

返回非NULL值:

select ename, comm,coalesce(comm,0) from emp where coalesce(comm,0) < (select comm from emp where ename = ‘WARD‘);

  

+--------+------+------------------+
| ename  | comm | coalesce(comm,0) |
+--------+------+------------------+
| SMITH  | NULL |                0 |
| ALLEN  |  300 |              300 |
| JONES  | NULL |                0 |
| BLAKE  | NULL |                0 |
| CLARK  | NULL |                0 |
| SCOTT  | NULL |                0 |
| KING   | NULL |                0 |
| TURNER |    0 |                0 |
| JAMES  | NULL |                0 |
| MILLER | NULL |                0 |
| ADAMS  | NULL |                0 |
| FORD   | NULL |                0 |
+--------+------+------------------+
12 rows in set

  

 

以上是关于mysql coalesce函数的主要内容,如果未能解决你的问题,请参考以下文章

Coalesce 函数如何处理数据类型

mysql几个常用的判空函数:isnull, ifnull, nullif, coalesce

mysql关联left join条件on和where条件的区别及结合coalesce函数

Spark repartition和coalesce的区别

COALESCE() 用于空白(但不是空)字段

MySQL:如何使用 COALESCE