摘要:在本教學中,您將學習如何使用 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)
以下顯示輸出

在此範例中,`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()` 函數將數字截斷為指定的小數位數。
這個教學對您有幫助嗎?