DECIMAL

適用対象:「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

指定した最大有効桁数と固定スケールを持つ数値を表します。

構文

{ DECIMAL | DEC | NUMERIC } [ (  p [ , s ] ) ]

p: 1 から 38 の間の数値の最大有効桁数 (合計桁数) (省略可能)。 既定値は 10 です。 s: 0 と p の間の数値のスケール (省略可能)。 小数点以下の桁数です。 既定値は 0 です。

制限

数値の範囲は次のとおりです。

  • -1Ep + 1 から -1E-s
  • 0
  • +1E-s から +1Ep - 1

たとえば、DECIMAL(5, 2) の範囲は -999.99 から 999.99 までです。

リテラル

decimal_digits { [ BD ] | [ exponent BD ] }
| digit [ ... ] [ exponent ] BD

decimal_digits:
[ + | - ] { digit [ ... ] . [ digit [ ... ] ]
            | . digit [ ... ] }

exponent:
E [ + | - ] digit [ ... ]

digit: 0 から 9 までの任意の数字。

接尾辞 BD と指数 E では、大文字と小文字は区別されません。

> SELECT +1BD;
  1

> SELECT 5E3BD;
  5000

> SELECT 5.321E2BD;
  532.1

> SELECT -6.45
  -6.45

> SELECT typeof(6.45);
  DECIMAL(3,2)

> SELECT CAST(5.345 AS DECIMAL(3, 2));
  5.35

> SELECT typeof(CAST(5.345 AS DECIMAL));
  DECIMAL(10, 0)

> SELECT typeof(CAST(5.345 AS DECIMAL(2)));
  DECIMAL(2, 0)