例如:
SELECT field1/field2 FROM TB;
当 field1的数值 > field2的数值时,除法得出的结果是<1的,即0.xxxxxx
这个时候在DB2的环境下SELECT出来的值是0
解決方法:
先把field1转换成DOUBLE类型的,这样计算出来的就会得出小数点了,会显示出0.xxxx
SELECT CAST(field1 AS FLOAT)/field2 FROM TB;
ps.网上搜的资料,写的是double,但在SQL Server2008中一直报错,改成FLOAT就没问题了。
小数点显示4位小数。可以进一步四舍五入,保留两位小数点
SELECT ROUND(CAST(field1 AS DOUBLE)/field2, 2) FROM TB;
如果数据列的值为NULL,将其设置为0,那么sql就要这么写
SELECT ROUND(COALESCE(CAST(field1 AS DOUBLE), 0)/field2, 2) FROM TB;
COALESCE这个函数系统的用法如下:
a. 输入参数为字符类型,且允许为空的,可以使用COALESCE(inputParameter,”)把NULL转换成”;
b. 输入类型为整型,且允许为空的,可以使用COALESCE(inputParameter,0),把空转换成0;
c. 输入参数为字符类型,且是非空非空格的,可以使用COALESCE(inputParameter,”)把NULL转换成”,然后判断函数返回值是否为”;
d. 输入类型为整型,且是非空的,不需要使用COALESCE函数,直接使用IS NULL进行非空判断。
分享到:
相关推荐
主要介绍了MSSQL中进行SQL除法运算结果为小数却显示0的解决方法,需要的朋友可以参考下
解决sqlserver,float去除后面的零超过四位会转换成特殊的编码格式的问题,无限制去除后面多余的0
安装 sql server 2005 时 提示 “SQL server服务无法启动”解决方案
Sql Server数据库备份的另类解决方案
包含了全面的sqlserver常见问题出错处理解决方案! 包含了全面的sqlserver常见问题出错处理解决方案! 包含了全面的sqlserver常见问题出错处理解决方案!
MS SQL Server查询语句,以小数位数作为条件,可查询符合条件的记录。可查询多位小数位数。
向sql server数据库插入中文时显示乱码
Microsoft SQL Server 2008技术内幕:T-SQL语言基础(集合运算)练习sql文件
将mysql数据库转换为sql server的数据库,或者将sql server数据库转换为mysql的数据库,在nt环境下很多时候都会用到。使用mysql odbc后就比较好办,可以使用sql server的管理工具,也可以使用mysql的管理工具,更可以...
SQL server 2008 R2数据平台运维管理解决方案
com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案
SQL Server群集实现方案 SQL Server群集实现方案
SQL Server 2005数据挖掘与商业智能完全解决方案
关于SQL Server SQL语句查询分页数据的解决方案
采用c#, 在sql server 中调用des 加密, 解密字符串. 可自定义key
, 《SQL Server 2008商业智能完美解决方案》结合专家团队提供的实际示例和丰富经验进行介绍,让读者能够直观轻松地掌握构建商业智能(BI)解决方案的概念、工具和技术,是一本不可多得的商业智能开发参考指南。...
SqlServer数据库中数据表的创建者非DBO的解决方案
两台SQL-Server数据同步解决方案
sqlserver导出excel文件出错解决方案 0x800A0E7A 0x80040154 sqlserver导出excel