SQL TRUNCATE

摘要:在本教學中,您將學習如何使用 SQL 的 TRUNCATE() 函數將數字截斷為指定的小數位數。

SQL TRUNCATE() 函數概述

以下顯示 TRUNCATE() 函數的語法

TRUNCATE(n, d)
Code language: SQL (Structured Query Language) (sql)

TRUNCATE() 函數會傳回將 `n` 截斷至 `d` 位小數位數的結果。如果您省略 `d`,則 `n` 會被截斷至 `0` 位小數位數。如果 `d` 是負數,則該函數會將數字 `n` 截斷至小數點左邊的 `d` 位數。

MySQL 支援 TRUNCATE() 函數。 但是,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)

以下顯示輸出

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()` 函數將數字截斷為指定的小數位數。

這個教學對您有幫助嗎?