SQLServer中进行sql除法运算结果为小数时显示0的解决方案
2015-04-21 17:51
399 查看
转自:http://blog.sina.com.cn/s/blog_8020e41101019k7t.html
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;
不過因為我要用到百分比,就改成了
SELECT CAST(field1 AS FLOAT)/field2 * 100 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进行非空判断。
----------------------------------------------------------------
备注:
CAST函数用来类型转换
ROUND函数用来控制小数位数
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;
不過因為我要用到百分比,就改成了
SELECT CAST(field1 AS FLOAT)/field2 * 100 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进行非空判断。
----------------------------------------------------------------
备注:
CAST函数用来类型转换
ROUND函数用来控制小数位数
相关文章推荐
- SQLServer中进行sql除法运算结果为小数时显示0的解决方案
- SQLServer中进行sql除法运算结果为小数时显示0的解决方案
- DB2中进行sql除法运算结果为小数时显示0的解决方案
- sql 除法运算结果为小数时显示0的解决方案 或者百分比
- MSSQL中进行SQL除法运算结果为小数却显示0的解决方法
- MSSQL中进行SQL除法运算结果为小数却显示0的解决方法
- sqlserver 除法运算结果为小数时显示0
- [MS SQL]除法运算结果为小数时显示0的解决方案
- sql server 中进行除法运算时,如何得到结果是小数形式呢?
- 在EL中进行除法运算,结果不要小数的问题
- [疯狂Java]SQL:对查询结果进行集合运算
- SQL除法运算保留小数位
- android: EditText一边输入一边进行判断显示操作,运算复杂时的解决方案
- Python对小数进行除法运算的正确方法示例
- sql 除法运算结果取整
- Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案
- Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案
- Python对小数进行除法运算的正确方法示例
- eclipse运行java总显示上一个程序的运行结果(解决方案)
- sqlserver中计算结果保留小数