指定された桁で数値を切り捨てるスカラ数値関数。
Synopsis
{fn TRUNCATE(numeric-expr,integer-expr)}
引数
numeric-expr 切り捨てられる数字。数値または数値式。
integer-expr 小数点からカウントして、切り捨てる桁数を指定する整数 (または整数に評価する式)。ゼロ、正の整数、または負の整数を指定できます。integer-expr が小数の場合、最も近い整数に丸められます。
概要
TRUNCATE は、numeric-expr を小数点から integer-expr 桁目で切り捨てます。数値の丸めやゼロの埋め込みはしません。TRUNCATE 処理の前に、先頭と末尾のゼロは削除されます。TRUNCATE が返す値のデータ型は、numeric-expr のデータ型と同じです。
数値関数 TRUNCATEROUND の動作は似ています。両方とも小数桁または整数桁の有効桁数を減らすために使用できます。ただし、TRUNCATE は丸めを行いません。TRIM を使用して、文字列で同様のトランケーション処理を実行できます。
TRUNCATE は { } 括弧構文による ODBC スカラ関数としてのみ使用できます。
次の 2 つの例では、数値を小数第 2 位で切り捨てます。最初は整数として integer-expr を指定し、2 番目は (埋め込み SQL を使用して) 整数に変換するホスト変数として integer-expr を指定しています。
SELECT DISTINCT {fn TRUNCATE(654.321,2)} AS Trunc
FROM Sample.Person
  SET x=2
  &sql(SELECT {fn TRUNCATE(654.321,:x)}
  INTO :a
  FROM Sample.Person)
   IF SQLCODE'=0 {
     WRITE !,"Error code ",SQLCODE }
   ELSE {
     WRITE !,"truncated value is:",a }
両方の例とも、654.32 を返します (小数第 2 位で切り捨て)。
次の例では、integer-expr を小数桁数より大きく指定しています。
SELECT DISTINCT {fn TRUNCATE(654.32100,9)} AS Trunc
FROM Sample.Person
これは 654.321 を返します (切り捨て処理の前に末尾のゼロが削除されます。切り捨てやゼロの埋め込みは発生しません)。
次の例では、0 の integer-expr を指定しています。
SELECT DISTINCT {fn TRUNCATE(654.321,0)} AS Trunc
FROM Sample.Person
これは 654 を返します (小数点以下すべてと小数点が切り捨てられます)。
次の例では、負の integer-expr を指定しています。
SELECT DISTINCT {fn TRUNCATE(654.321,-2)} AS Trunc
FROM Sample.Person
これは 600 を返します (整数桁が 2 桁切り捨てられ、0 で置き換わります。丸めは実行されません)。
次の例では、負の integer-expr を数値の整数桁数と同じに指定しています。
SELECT DISTINCT {fn TRUNCATE(654.321,-3)} AS Trunc
FROM Sample.Person
これは 0 を返します。
関連項目