摘要:本教程将介绍如何使用 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() 函数将数字截断到指定的小数位数。
本教程是否有用?