Dela via


Typ: DECIMAL

Gäller för: markerad ja Databricks SQL markerad ja Databricks Runtime

Representerar tal med en angiven maximal precision och fast skalning.

Syntax

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

p: Valfri maximal precision (totalt antal siffror) för talet mellan 1 och 38. Standardvärdet är 10. s: Valfri skalning av talet mellan 0 och p. Antalet siffror till höger om decimaltecknet. Standardvärdet är 0.

Gränser

Talintervallet:

  • -1Ep + 1 till -1E-s
  • 0
  • +1E-s till +1Ep - 1

Ett DECIMAL(5, 2) har till exempel ett intervall på: -999,99 till 999,99.

Literaler

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

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

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

digit: Alla siffror från 0 till 9.

Postfixet BD och exponenten E är skiftlägesokänsliga.

Exempel

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