sql server 2008 整数相除需要除数或被除数有一个数据类型为小数,才可以四舍五入。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网站空间、营销软件、网站建设、望花网站维护、网站推广。
首先看一个例子,如图:
两条语句唯一区别就是 10 与 10.00
1、select cast(round(10/6,0) as int) 结果:1
2、select cast(round(10.00/6,0) as int) 结果:2
但结果确不一样。
原因是SQLserver有默认的数据类型转换。
10/6 默认转换为整型 即:10/6 = 1。那么 round(1) = 1
10.00/6 默认转换为小数即:10.00/6 = 1.666666 ,那么 round(1.666666,0) = 2
1,2在SqlServer默认当做int类型,两个int变量相除得到的还是个int类型
所以只要把其中一个改成小数类型的就可以得到你要的结果了
select (select count(*) as y from t where s='b')
(select count(*) as n from t where s!='b')
在SqlServer默认当做int类型,两个int变量相除得到的还是个int类型 ,所以只要把其中一个改成小数类型的就可以得到你要的结果了。
除法运算
一款简单的除法运算题目,小朋友们懂的做,很简单的除法运算,小朋友们来挑战一下
运算是一种游戏,适用于小孩子对于数学的理解。
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。
2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
例如:
select cast(round(12.5,2) as numeric(5,2)) 结果:12.50
select cast(round(12.555,2) as numeric(5,2)) 结果:12.56
select cast(round(122.5255,2) as numeric(5,2)) 结果:122.53
select cast(round(1222.5255,2) as numeric(5,2)) 结果:报错了! 原因是:1222.5255,整数位是4,小数位是2,加起来4+2=6,超出了numeric设置的5位,所以为了保险,可以增减numeric的参数,例如numeric(20,2)。