sql 当为空值时置0_SQL查询值为空时默认输出0的方法

今天在完善支付系统的时候,优化了一下程序中的数据库相关语句代码,原本采用的逻辑是先读取整个表数据,先将变量指定为0,然后循环输出加值,这样做效果没那么好,还影响效率,所以我将它改成了直接从数据库查询的时候就直接做好统计,使用的方法是sum()函数。

当然,SQL 拥有很多可用于计数和计算的内建函数。这里就简单给大家介绍一下~

SQL Aggregate 函数 //计算从列中取得的值,返回一个单一的值。

AVG() - 返回平均值

COUNT() - 返回行数

FIRST() - 返回第一个记录的值

LAST() - 返回最后一个记录的值

MAX() - 返回最大值

MIN() - 返回最小值

SUM() - 返回总和

SQL Scalar 函数 //基于输入值,返回一个单一的值。

UCASE() - 将某个字段转换为大写

LCASE() - 将某个字段转换为小写

MID() - 从某个文本字段提取字符,MySql 中使用

SubString(字段,1,end) - 从某个文本字段提取字符

LEN() - 返回某个文本字段的长度

ROUND() - 对某个数值字段进行指定小数位数的四舍五入

NOW() - 返回当前的系统日期和时间

FORMAT() - 格式化某个字段的显示方式

由以上介绍可见,我采用了以下写法

SELECT SUM(余额) FROM 商户表

好用是好用,就是有点上头~问题在测试的时候也就自然而然的出现了!

如果网站内所有的商户余额都是0,就会导致数据库查询得到的值是NULL,前端读取时只有一个孤零零的“元”字显示在上面却没有数值,满屏的尴尬

这个时候我们需要用到SQL的函数COALESCE,作用是将NULL值替换成其他值将返回传入的参数中第一个非NULL的值。

解决方法:

SELECT COALESCE(SUM(余额),0) FROM 商户表

这样的话,输出的时候就不会导致NULL值的出现而尴尬了,前端所看到的也变成了“0元”,如果将COALESCE内的0改为其他数值,例如改为100,那么就会直接显示"100元"

注:COALESCE()不单单只适用于sum(),这里傲世我只是给大家拿这个做例子,希望能帮到您

本文标签:SQL

版权声明:若无特殊注明,本文为《小傲世》原创,转载请保留文章出处。

本文链接:https://pjax.vip/100.html

正文到此结束

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值