博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLServer中进行sql除法运算结果为小数时显示0的解决方案
阅读量:5128 次
发布时间:2019-06-13

本文共 1083 字,大约阅读时间需要 3 分钟。

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进行非空判断。

----------------------------------------------------------------

sql 进一法和四舍五入:

--进一法:执行结果为2select ceiling(1.1)--四舍五入:执行结果:2,1,3.0select round(1.6,0)select round(1.3,0)select round(2.6,1)

 

 

备注:

CAST函数用来类型转换

ROUND函数用来控制小数位数

转载于:https://www.cnblogs.com/shuilangyizu/p/6681723.html

你可能感兴趣的文章
javaScriptObject转String
查看>>
UE4 优化参数
查看>>
西数常用TREX命令
查看>>
SpringMVC学习笔记1
查看>>
每天拿出来2小时浪费
查看>>
NSBundle pathForResource取不到值问题
查看>>
fiddler抓取https失败解决方案
查看>>
Windows定时任务没有执行
查看>>
Hexo瞎折腾系列(2) - 添加背景图片轮播
查看>>
vs------各种错误解决方法
查看>>
JavaScript基础---语言基础(3)
查看>>
团队站立会议08
查看>>
IOI1998 Polygon [区间dp]
查看>>
硬链接和符号链接的区别
查看>>
docker-swarm
查看>>
接口和抽象类
查看>>
poj2151 Check the difficulty of problems(概率dp)
查看>>
UI- UINavigationController UITabBarController 使用总结
查看>>
BZOJ3926: [Zjoi2015]诸神眷顾的幻想乡(广义后缀自动机)
查看>>
mysql 中 時間和日期函數大全
查看>>