sql平均值四舍五入(sql 四舍五入问题)
本文目录
- sql 四舍五入问题
- **L如何四舍五入
- sql server 2005数据库中如何对从数据库中查出的数据结果进行四舍五入
- **L查询平均数
- 如何平均四舍五入到Postgre**L的2位小数
- 查询每个部门总工资,和每个部门的平均工资的sql语句
- sql server 2008 整数相除四舍五入
- sql语句怎么写“四舍五入后求和”的语句
sql 四舍五入问题
Round函数(四舍六入五成双)(转)2007-06-09 15:20Round(所在单元:Math)
功能说明:对一个实数进行四舍五入。(按照银行家算法)
参考实例:
var
I, j: Integer;
begin
i := Round(1.5); // i等于2
j := Round(2.5); // j等于2
//注意Round(2.53)=3
end;
在Delphi中使用Round函数得到的答案有时与我们所预期的会不太一样:
采用的是四舍六入五留双。即当舍或入位大于或小于五时按四舍五入来处理,而当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进,它总是返回一个偶数值。
示例 结果
i:= Round(11.5) 12
i:= Round(10.5) 10
这种Round其实是按照银行家算法,统计学上一般都用这种算法,比传统的"四舍五入"要科学。
如果要使用传统的"四舍五入"方法,可以使用下面算法:
//提供者FlashDance(10040231) 15:15:58
var
D1,D2:Double;
begin
D1:=3.14159;
D2:=StrToFloat(Format(’%.5f’,));
end;
**L如何四舍五入
update item set sale_price = price 理解为卖价最终会等于进价了。
如果是要把卖价等于进价四舍五入,则
update item set sale_price = cast(round(price,1) as numeric(15,1))
如果不满足您的需求,请继续追问,在线解答。
sql server 2005数据库中如何对从数据库中查出的数据结果进行四舍五入
用ROUND函数就好了﹐
比如 ﹕
SELECT ROUND(列) FROM 表
ROUND
返回数字表达式并四舍五入为指定的长度或精度。
语法
ROUND (
numeric_expression , length [ , function
] )
参数
numeric_expression
精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。
length
是 numeric_expression 将要四舍五入的精度。length 必须是
tinyint、**allint 或int。当 length
为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length
为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。
function
是要执行的操作类型。function 必须是 tinyint、**allint 或
int。如果省略 function 或 function 的值为
0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断 numeric_expression。
**L查询平均数
select avg(年龄) from student
如果四舍五入的话:
select round(avg(年龄),2) from student
2就代表小数后2位,看你自己需求,如果不保留小数,逗号和2都去掉
如何平均四舍五入到Postgre**L的2位小数
ostgre**L没有定义round(double precision, integer)。至于原因, 嘘声解释了一轮,需要一个精确的版本仅适用于numeric。
regress=》 SELECT round( float8 ’3.1415927’, 2 );
ERROR: function round(double precision, integer) does not exist
regress=》 \df *round*
List of functi***
Schema | Name | Result data type | Argument data types | Type
------------+--------+------------------+---------------------+--------
pg_catalog | dround | double precision | double precision | normal
pg_catalog | round | double precision | double precision | normal
pg_catalog | round | numeric | numeric | normal
pg_catalog | round | numeric | numeric, integer | normal
(4 rows)
regress=》 SELECT round( CAST(float8 ’3.1415927’ as numeric), 2);
round
-------
3.14
(1 row)
(在上面的,请注意float8仅仅是一个速记别名double precision。你可以看到,Postgre**L的正在扩大它在输出)。 你必须转换值被舍入到numeric两种表单的round。只是追加::numeric对于速记投,像round(val::numeric,2)。 如果你格式化显示给穿上’round。使用to_char(参见:本手册中的数据类型格式化函数),它可以让你指定格式,并给你一个text这是不会受到任何的怪事你的客户端端语言的结果可能跟numeric值。例如:
regress=》 SELECT to_char(float8 ’3.1415927’, ’FM999999999.00’);
to_char
---------------
3.14
(1 row)
to_char将数字四舍五入为你作为格式化的一部分。该FM前缀告诉to_char你不想与前导空格任何填充。
查询每个部门总工资,和每个部门的平均工资的sql语句
以oracle中默认scott用户下的dept表和emp表为例:
两个表数据分别如下:
dept表:
emp表:
求每个部门总工资sql语句如下:
select b.dname,sum(nvl(a.sal,0)) sal from emp a,dept b where a.deptno(+)=b.deptno group by b.dname;
结果如图:
求每个部门平均工资的sql语句如下:
select b.dname,round(avg(nvl(a.sal,2)),0) sal from emp a,dept b where a.deptno(+)=b.deptno group by b.dname;
结果如图:
部分函数说明:
sum为求和函数,将要求和的列sum(列名)
avg为求平均值函数,将要求平均值的列avg(列名)
nvl为如果未空则置空值为其他数据的函数,nvl(为空的列,将空值置成的其他值)
round为四舍五入函数,round(列名,保留小数位数)
sql server 2008 整数相除四舍五入
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
但结果确不一样。
原因是**Lserver有默认的数据类型转换。
10/6 默认转换为整型 即:10/6 = 1。那么 round(1) = 1
10.00/6 默认转换为小数即:10.00/6 = 1.666666 ,那么 round(1.666666,0) = 2
sql语句怎么写“四舍五入后求和”的语句
把数据类型转换为decimal,系统会自动四舍五入,字段合计求和可以用sum函数,例如以下例子假设合并字段col,只保留一位小数:
select sum(cast(col as decimal(19,1)))
from 表
更多文章:
使用plsql导入dmp文件(从plsqldev导入oracle dmp数据库步骤!)
2026年3月28日 20:00
sql server怎么创建表(sqlserver 下怎么建立数据库 怎么建表)
2026年3月28日 19:40
ifand函数4个条件4个结果(excel 中IF(AND)函数的运用)
2026年3月28日 19:00
电脑网页和手机网页的区别(手机访问网站 和电脑访问有什么区别)
2026年3月28日 18:40
update语句不生效(求高人指点,为什么我的update语句运行没报错,但没生效,新手菜鸟,代码如下:)
2026年3月28日 18:00
迷你世界里滑动门怎么做加图片?玻璃推拉门市场参考价格玻璃拉门价格及图片
2026年3月28日 17:40





