概要: このチュートリアルでは、SQLのTRUNCATE()関数を使用して、数値を指定した小数点以下の桁数に切り捨てる方法を学習します。
SQL TRUNCATE()関数の概要
以下は、TRUNCATE()関数の構文を示しています。
TRUNCATE(n, d)
Code language: SQL (Structured Query Language) (sql)TRUNCATE()関数は、nをd小数点以下の桁数に切り捨てた値を返します。dを省略した場合、nは小数点以下0桁に切り捨てられます。dが負数の場合は、関数は数値nを小数点の左からd桁目に切り捨てます。
TRUNCATE()関数はMySQLでサポートされています。ただし、MySQLではnとdの両方の引数が必須です。
OracleとPostgreSQLは、TRUNCATE()関数と同じ機能を持つTRUNC()関数を提供しています。
一方、SQL Serverは、切り捨て演算を決定する第3のパラメータを持つ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()関数は数値を小数点以下2桁に切り捨てています。
B) 負の小数点以下の桁数を持つTRUNCATE()関数の使用
次の例では、負の小数点以下の桁数を持つTRUNCATE()関数を使用しています。
SELECT TRUNCATE(123.4567,-2);
Code language: SQL (Structured Query Language) (sql)出力は以下のとおりです。

この例では、小数点以下の桁数は-2であるため、TRUNCATE()関数は小数点の左から2桁を切り捨てています。
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()関数を使用して、数値を指定した小数点以下の桁数に切り捨てる方法を学習しました。