тип 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)