SQL TRUNCATE

摘要:本教程将介绍如何使用 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 需要 nd 两个参数。

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)

以下代码显示了输出:

SQL TRUNCATE example

在此示例中,TRUNCATE() 函数将数字截断到两位小数以下。

B) 使用具有负小数位数的 TRUNCATE() 函数

以下示例使用具有负小数位数的 TRUNCATE() 函数:

SELECT TRUNCATE(123.4567,-2);
Code language: SQL (Structured Query Language) (sql)

输出如下所示:

SQL FLOOR Function example with a negative number

在此示例中,小数位数为 -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 with table column example

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

本教程是否有用?