SQL ROUND:将数字舍入到特定精度

概括:本教程将讲解如何使用 SQL 的 ROUND 函数将数字舍入到特定精度。

SQL ROUND 函数简介

ROUND 函数是一个 数学函数,可将数字舍入到特定长度或精度。下表展示了 ROUND 函数的语法:

ROUND(numeric_expression,precision);Code language: SQL (Structured Query Language) (sql)

ROUND 函数接受两个参数:

  1. numeric_expression 是一个数值表达式,求值结果为数字。
  2. 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 示例

示例数据库 中查看以下 employeesdepartments 表:

emp_dept_tables

以下语句使用 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)
SQL ROUND function example

本教程讲解了如何使用 ROUND 函数将数字舍入到特定精度。

本教程是否对你有帮助?