摘要:本教程将介绍如何使用 SQL TRUNCATE()
函数将数字截断到指定的小数位数。
SQL TRUNCATE() 函数概述
以下代码显示了 TRUNCATE()
函数的语法:
TRUNCATE(n, d)
Code language: SQL (Structured Query Language) (sql)
TRUNCATE()
函数返回截断到 d
小数位数的 n
。如果你跳过 d
,则 n
将截断到 0
小数位数。如果 d
为负数,则该函数会将数字 n
截断到小数点左侧的 d
位。
TRUNCATE()
函数受 MySQL 支持。但是,MySQL 需要 n
和 d
两个参数。
Oracle 和 PostgreSQL 则提供了 TRUNC()
函数,其功能与 TRUNCATE()
函数相同。
但是,SQL Server 使用 ROUND()
函数,第三个参数确定了截断运算
ROUND(n,d, f)
Code language: SQL (Structured Query Language) (sql)
如果 f
不为零,则 ROUND()
函数将 n
四舍五入到 d
位小数位数。
SQL TRUNCATE() 函数示例
A) 使用具有正小数位数的 TRUNCATE 函数
以下语句演示如何对正数使用 TRUNCATE()
函数:
SELECT TRUNCATE(123.4567,2);
Code language: SQL (Structured Query Language) (sql)
以下代码显示了输出:

在此示例中,TRUNCATE()
函数将数字截断到两位小数以下。
B) 使用具有负小数位数的 TRUNCATE() 函数
以下示例使用具有负小数位数的 TRUNCATE()
函数:
SELECT TRUNCATE(123.4567,-2);
Code language: SQL (Structured Query Language) (sql)
输出如下所示:

在此示例中,小数位数为 -2
,因此 TRUNCATE()
函数将小数点左侧的两位数字截断。
C) 使用具有表列的 TRUNCATE() 函数
以下语句找到每个部门员工的平均工资:
SELECT
department_name,
TRUNCATE(AVG(salary),0) average_salary
FROM
employees e
INNER JOIN
departments d ON d.department_id = e.department_id
GROUP BY
department_name
ORDER BY
average_salary;;
Code language: SQL (Structured Query Language) (sql)
在此示例中,我们使用 TRUNCATE()
函数删除平均工资的小数点后面的所有数字。
这是输出:

在本教程中,你学会了如何使用 SQL TRUNCATE()
函数将数字截断到指定的小数位数。
本教程是否有用?