Round函数在SQL Server与Access中的区别
2014-03-24 09:53
330 查看
ROUND
返回数字表达式并四舍五入为指定的长度或精度。语法
ROUND ( numeric_expression , length[ , function ] )
参数
numeric_expression
精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。
length
是 numeric_expression 将要四舍五入的精度。length 必须是
tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为length 所指定的小数位数。当
length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。
function
是要执行的操作类型。function 必须是 tinyint、smallint或
int。如果省略 function 或 function 的值为 0(默认),numeric_expression将四舍五入。当指定 0 以外的值时,将截断
numeric_expression。
返回类型
返回与 numeric_expression 相同的类型。
在实际使用过程中Round函数在SQL Server和Access是有区别的,在SQL Server里面采用的是四舍五入的模式,在Access里面采用的是四舍六入五成双的模式,举例如下:
select round(0.5,0) ------------------------------------- Access返回值:0 SQL Server返回值:1
“四舍六入五成双”,也即“4舍6入5凑偶”这里“四”是指≤4 时舍去,"六"是指≥6时进上,"五"指的是根据5后面的数字来定,当5后有数时,舍5入1;当5后无有效数字时,需要分两种情况来讲:①5前为奇数,舍5入1;②5前为偶数,舍5不进。(0是偶数)
从统计学的角度,“四舍六入五成双”比“四舍五入”要科学,在大量运算时,它使舍入后的结果误差的均值趋于零,而不是像四舍五入那样逢五就入,导致结果偏向大数,使得误差产生积累进而产生系统误差。
不同的数据库不同的开发工具这个函数可能会不一样,在使用这个函数之前记得先做测试。
--------------------------------------------------------------------------------------------------
PS:本文档为本人原创,如需转载请注明作者及出处。谢谢!
相关文章推荐
- SQL Server和Access设置自增字段的区别
- ACCESS中使用SQL语句应注意的地方、与sql server的区别及几点技巧(整理中)
- VC+ADO 连接ACCESS和SQL SERVER的区别
- Access, SQL Server, Oracle, MySQL的区别与相似
- Access和sql server的语法区别
- ACCESS中使用SQL语句应注意的地方、与sql server的区别及几点技巧(整理中)
- Access和sql server的语法区别
- Access与sql server的语法区别总结
- Access、SQL Server、Oracle 常见应用的区别
- Oracle、SQL Server、Access的区别
- Access和sql server的语法区别 (包括db2 oracle)
- Access和sql server的语法区别
- sql server和access 中sql语句的区别(佚名)
- Access和sql server的语法区别 (包括db2 oracle)
- 在ACCESS和SQL Server下Like 日期类型查询区别
- Access和sql server的语法区别
- MySQL、SQL Server 、 Oracle、Access的sql语句区别
- Access与sql server的语法区别总结_数据库技巧
- Access 与 SQl server 一些写法上的区别 记录
- SQL Server 与 ACCESS 查询参数传递的区别