sql 语句sum 后的值总是对不上(科学计数法,replace 函数)背景
运营提供了⼀版数据,并且导⼊到数据库⾥了,但是测试同学测的时候发现要统计的页⾯显⽰的数值,总是和数据库中sum后的值对不上原因
当时我⾃⼰陷⼊误区了,以为导⼊的数据不对呢,还⽐较了提供的那版数据excel和页⾯上的显⽰的数据,也⼀样啊。但是⼀到对⽐数据库,总是也对不上。再到后来,我就挑了⼀个量⽐较少的数据进⾏⽐对,最后才发现,数据库存的居然是科学计数法的形式。⽐如,123,2.2
进⽽导致sum之后的值是乱的,⽐如下图:
sum(change_money)之后的值,正确应该是8023.73
字符串replace函数
解决
由于这个科学计数法的形式暂时还不能变动,现仅单纯解决sum值的这个问题
使⽤replace函数,话不多说,上sql
可以看出,结果是正确的
replace 函数
replace(object,search,replace)
将object字段中出现的search全部替换为replace
本⽂就是将change_money字段中的逗号都替换为空字符串
select sum(replace(change_money,",","")) from t_test;