TypeDECIMAL

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Représente des nombres avec une précision maximale spécifiée et une échelle fixe.

Syntaxe

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

p : précision maximale facultative (nombre total de chiffres) du nombre, comprise entre 1 et 38. La valeur par défaut est de 10. s : échelle facultative du nombre comprise entre 0 et p. Nombre de chiffres à droite de la virgule décimale. La valeur par défaut est 0.

limites

Plage de nombres :

  • De -1Ep + 1 à -1E-s
  • 0
  • De +1E-s à +1Ep - 1

Par exemple, un DECIMAL (5, 2) a une plage comprise entre -999 99 et 999 99.

Littéraux

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

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

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

digit : un chiffre compris entre 0 et 9.

Le suffixe BD et l’exposant E ne respectent pas la casse.

Exemples

> 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)