TRUNCATE または TRUNC
TRUNCATE 関数は、expression–1 を、小数点の右側または左側の特定の桁で切り捨てた値を返します。
- expression–1
- 任意の組み込み数値、文字ストリング、
またはグラフィック・ストリングのデータ・タイプの値を戻す式。
ストリング引数は、関数を評価する前に倍精度の浮動小数点に変換されます。
ストリングを倍精度の浮動小数点に変換する方法については、DOUBLE_PRECISION または DOUBLEを参照してください。
expression-1 が 10 進浮動小数点データ・タイプの場合、DECFLOAT ROUNDING MODE は使用されません。TRUNCATE の切り下げ動作は、ROUND_DOWN の値に対応します。別の丸め動作が必要な場合は、QUANTIZE 関数を使用します。
- expression–2
- 組み込み短精度整数、長精度整数、または 64 ビット整数データ・タイプの値を戻す式。
整数の絶対値は、expression–2 が負でなければ、結果の小数点より右の桁数を指定し、
expression–2 が負であれば、小数点より左の桁数を指定します。
expression–2 が負でない場合、expression–1 は小数点の右側の expression–2 桁で切り捨てられます。
expression–2 が負の場合、 expression–1 は、小数点の左側の expression–2 の絶対値 +1 桁 で切り捨てられます。
expression–2 の絶対値が小数点より左の桁数より大きい場合、結果は 0 になります。 例えば、TRUNCATE (748.58,-4) = 0 です。
結果のデータ・タイプおよび長さ属性は、最初の引数のデータ・タイプおよび長さ属性と同じです。
どちらかの引数が NULL になる可能性がある場合は、結果も NULL になる可能性があります。 引数のどちらかが NULL である場合は、結果は NULL 値になります。
例
- 最も給与の高い従業員の平均月収を計算します。その結果を小数点の右、2 桁目までで切り捨てます。
サンプルの従業員表内で給与の最も高い従業員の年収は $52750.00 なので、この例では 4395.83 の値が戻されます。SELECT TRUNCATE(MAX(SALARY/12, 2)) FROM EMPLOYEE
- 数値 873.726 を、小数点から 2、1、0、-1、-2、-3 までで切り捨てます。
SELECT TRUNCATE(873.726, 2), TRUNCATE(873.726, 1), TRUNCATE(873.726, 0), TRUNCATE(873.726, -1), TRUNCATE(873.726, -2), TRUNCATE(873.726, -3) FROM SYSIBM.SYSDUMMY1
それぞれ以下の値が戻されます。
0873.720 0873.700 0873.000 0870.000 0800.000 0000.000
- 正負両方の数値を計算します。
SELECT TRUNCATE( 3.5, 0), TRUNCATE( 3.1, 0), TRUNCATE(-3.1, 0), TRUNCATE(-3.5, 0) FROM SYSIBM.SYSDUMMY1
この例ではそれぞれ、
が戻されます。3.0 3.0 -3.0 -3.0