加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

在SQL中将INT转换为FLOAT

发布时间:2020-12-12 16:14:39 所属栏目:MsSql教程 来源:网络整理
导读:我有这个查询: SELECT sl.sms_prefix,sum( sl.parts ),cp.country_name,CAST(SUM(sl.parts) AS NUMERIC(10,4)) * CAST(cp.price AS NUMERIC(10,4))FROM sms_log sl,sms_transaction st,country_prefix cpWHERE st.customer_id =1AND st.sendtime =1329865200
我有这个查询:
SELECT sl.sms_prefix,sum( sl.parts ),cp.country_name,CAST(SUM(sl.parts) AS NUMERIC(10,4)) * CAST(cp.price AS NUMERIC(10,4))
FROM sms_log sl,sms_transaction st,country_prefix cp
WHERE st.customer_id =1
AND st.sendtime >=1329865200
AND st.sendtime <=1330037999
AND st.sms_trans_id = sl.trans_id
AND sl.sms_prefix = cp.prefix
AND st.customer_id = cp.customer_id
GROUP BY sl.sms_prefix
LIMIT 0,30

结果:

sms_prefix  sum( sl.parts )     country_name    price   total
==================================================================================
45            2                        Denmark   0.01   0.019999999552965
63            3                        Philippines   2  6

正如你所看到的,丹麦的“总”不正确,因为sum(sl.parts)= 2乘以0.01,总数应该是0.02.

价格领域是FLOAT我怎么可以CAST总共浮动?

问候,

解决方法

在oracle数据库中有一个把int转换为float的技巧(我想这也应该在mysql中工作):
select myintfield + 0.0 as myfloatfield from mytable

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读