mysql coalesce函数_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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值