今天写sql的时候,发现PG里有一张表的面积字段竟然设置成字符串类型,这样就不能统计使用sum函数了,所以需要将字符串转换成double类型再相加。
select sum(to_number(mj,9999.99)) as amountmj
from table group by area
其中9999.99就是不管是mj字段的值还是amountmj的值不能超过9999.99,且保留两位小数。
补充:postgresql科学计数法转浮点或字符串
科学计数法转浮点
select '2.93985E-6'::double precision
2.93985e-06
展示依然为科学计数形式,可以参与运算没有问题
科学计数法转字符串
select '2.93985E-6'::decimal::text
0.00000293985
科学记数法转浮点-控制精度
-- 控制精度为6位
select ROUND('2.93985E-6'::decimal, 6)
0.000003
以上为个人经验,希望能给大家一个参考,也希望大家多多支持自学编程网。如有错误或未考虑完全的地方,望不吝赐教。
- 本文固定链接: https://zxbcw.cn/post/203084/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)