概括:本教程将讲解如何使用 SQL 的 ROUND 函数将数字舍入到特定精度。
SQL ROUND 函数简介
ROUND
函数是一个 数学函数,可将数字舍入到特定长度或精度。下表展示了 ROUND
函数的语法:
ROUND(numeric_expression,precision);
Code language: SQL (Structured Query Language) (sql)
ROUND
函数接受两个参数:
- numeric_expression 是一个数值表达式,求值结果为数字。
- precision 只能接受正整数或负整数。
下表语句将数字舍入到小数点后一位。
SELECT ROUND(100.19,1);
Code language: SQL (Structured Query Language) (sql)
round
-------
100.2
(1 row)
Code language: SQL (Structured Query Language) (sql)
由于精度为 1,所以 ROUND
函数将数字向上舍入到最接近的小数。参见以下示例。
SELECT ROUND(100.14,1);
Code language: SQL (Structured Query Language) (sql)
round
-------
100.1
(1 row)
Code language: SQL (Structured Query Language) (sql)
如果精度为负整数,ROUND
函数将舍入小数点左侧的数字,如:
SELECT ROUND(109.14,-1);
Code language: SQL (Structured Query Language) (sql)
round
-------
110
(1 row)
Code language: SQL (Structured Query Language) (sql)
在上述语句中,ROUND
函数向上舍入了小数点左侧数字的最后一位。此外,小数点右侧的数字变为零。
某些数据库系统,例如 Microsoft SQL Server、IBM DB2、Sybase ASE 会在数字的小数点后显示零 (.00),而其他数据库,如 Oracle、PostgreSQL、MySQL 则不会显示。
请注意,Oracle、PostgreSQL 和 MySQL 含有接受单个参数的 ROUND
函数版本。如果你传递单个参数,ROUND
函数将数字向上舍入到最接近的整数。例如,以下语句返回 110,这是最接近的整数。
SELECT ROUND(109.59);
Code language: SQL (Structured Query Language) (sql)
round
-------
110
(1 row)
Code language: SQL (Structured Query Language) (sql)
SQL ROUND 示例
在 示例数据库 中查看以下 employees
和 departments
表:

以下语句使用 ROUND
函数将每个部门的员工平均工资舍入到最接近的整数。
SELECT
department_name,
ROUND(AVG(salary), 0) average_salary
FROM
employees e
INNER JOIN
departments d ON d.department_id = e.department_id
GROUP BY e.department_id
ORDER BY department_name;
Code language: SQL (Structured Query Language) (sql)

本教程讲解了如何使用 ROUND
函数将数字舍入到特定精度。
本教程是否对你有帮助?