PostgreSQL 教程: trunc 函数: 将数字截断到指定的小数位

九月 5, 2023

PostgreSQL 的TRUNC()函数返回截断为整数或截断到指定小数位的数字。

语法

下面说明了 PostgreSQL 的TRUNC()函数的语法:

TRUNC(number [, precision])

参数

TRUNC()函数接受两个参数。

1) number

number参数是要截断的数值。

2) precision

precision参数是一个整数,表示小数位数。

如果precision参数是正整数,TRUNC()函数会截断小数点右侧的数字。

如果precision是负整数,TRUNC()函数将替换小数点左侧的数字。

精度参数是可选的。如果您不指定它,则默认为零 (0)。换句话说,number 会被截断为整数。

返回值

如果未指定第二个参数,PostgreSQL 的TRUNC()函数将返回与第一个参数相同的数字数据类型。否则,如果使用两个参数,该函数将返回一个 numeric 数值。

示例

A) 截断为整数的示例

以下示例使用TRUNC()函数将数字截断为整数:

SELECT
    TRUNC(10.6);

结果是:

10

B) 截断至指定的小数位

以下语句将数字截断至小数点后两位:

 SELECT
    TRUNC(
        1.234,
        2
    );

结果如下:

1.23

C) 第二个参数为负时截断数字的示例

考虑以下示例:

SELECT
    TRUNC(150.45, -2)

第二个参数是 -2,因此,TRUNC()函数替换了小数点左边的数字,结果是:

100

D) 截断查询返回的数字

请参阅示例数据库中的filmfilm_categorycategory表,如下:

film film_category category tables

以下语句计算了按电影类别的平均出租率:

SELECT
    NAME,
    TRUNC(AVG( rental_rate ), 2)
FROM
    film
INNER JOIN film_category
        USING(film_id)
INNER JOIN category
        USING(category_id)
GROUP BY
    NAME
ORDER BY NAME;

在此示例中,我们使用TRUNC()函数将平均出租率截断至小数点后两位。

下图说明了结果:

PostgreSQL TRUNC example

在本教程中,您学习了如何使用 PostgreSQL 的TRUNC()函数来截断数字。