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