SQL TRUNCATE

概要: このチュートリアルでは、SQLのTRUNCATE()関数を使用して、数値を指定した小数点以下の桁数に切り捨てる方法を学習します。

SQL TRUNCATE()関数の概要

以下は、TRUNCATE()関数の構文を示しています。

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

TRUNCATE()関数は、nd小数点以下の桁数に切り捨てた値を返します。dを省略した場合、nは小数点以下0桁に切り捨てられます。dが負数の場合は、関数は数値nを小数点の左からd桁目に切り捨てます。

TRUNCATE()関数はMySQLでサポートされています。ただし、MySQLではndの両方の引数が必須です。

OracleとPostgreSQLは、TRUNCATE()関数と同じ機能を持つTRUNC()関数を提供しています。

一方、SQL Serverは、切り捨て演算を決定する第3のパラメータを持つROUND()関数を使用します。

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

fがゼロでない場合、ROUND()関数はnd小数点以下の桁数に丸めます。

SQL TRUNCATE()関数の例

A) 正の小数点以下の桁数を持つTRUNCATE関数の使用

以下のステートメントは、正の数値に対してTRUNCATE()関数を使用する方法を示しています。

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

出力は以下のとおりです。

SQL TRUNCATE example

この例では、TRUNCATE()関数は数値を小数点以下2桁に切り捨てています。

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()関数は小数点の左から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 with table column example

このチュートリアルでは、SQLのTRUNCATE()関数を使用して、数値を指定した小数点以下の桁数に切り捨てる方法を学習しました。

このチュートリアルは役に立ちましたか?