在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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 安装SQL2008时提示删除SQL2005Express工具的解决方法
- 被遗忘的SQLServer比较运算符修饰词
- sql-server – 在SQL Server中以编程方式将索引从一个表复制
- sqlserver2000(不能执行查询,因为一些文件丢失或未注册)
- 一次性备份SQL Server中所有的数据
- SQL货币数字转英文字符语句
- data-warehouse – 避免在SSIS中完全编写SQL查询
- 数据库 – Oracle Entreprise和Oracle Standard版本之间是否
- sql-server – SQL Server 2005/2008 – 多个文件组?
- 这个SQL Server查询分区计算有什么问题?