Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks SQL
Runtime 19 e superiori
Rappresenta numeri in virgola mobile in base 10 con 16 o 34 cifre significative e senza scala fissa.
Important
DECFLOAT è in beta. Un amministratore di workspace deve abilitare il tipo di dato DECFLOAT nelle Anteprime.
Sintassi
DECFLOAT [ ( p ) ]
-
p: Il numero massimo di cifre decimali significative. I valori supportati sono 16 e 34. Il valore predefinito è 34.
DECFLOAT non accetta l'argomento della bilancia. Ogni valore ha il suo esponente.
Limits
| Property | DECFLOAT(16) |
DECFLOAT(34) |
|---|---|---|
| Cifre significative | Fino a 16 | Fino a 34 |
| Valore positivo non nullo più piccolo | 1E-398 |
1E-6176 |
| Valore finito positivo più grande | (10^16 - 1) × 10^369 |
(10^34 - 1) × 10^6111 |
Gli stessi limiti si applicano ai numeri negativi. Entrambi i tipi supportano anche Infinity e NaN.
Literals
Usa CAST con una stringa o un valore numerico supportato. Le stringhe possono anche contenere NaN, Inf, o Infinity.
Notes
DECFLOAT rappresenta valori decimali come 0.1 esattamente. I valori che superano la precisione possono arrotondare senza errore, incluso con TRY_CAST. Lancia direttamente testo decimale. Convertire attraverso FLOAT o DOUBLE può perdere precisione.
L'output delle stringhe preserva gli zeri finali, quindi valori uguali come 1.5 e 1.50 possono produrre stringhe diverse (+15E-1 e +150E-2). Tira da DECFLOAT per DECIMAL arrotondare metà verso l'alto, indipendentemente da DECFLOAT_ROUNDING_MODE.
- L'aritmetica preserva la precisione quando entrambi gli operandi hanno lo stesso tipo DECFLOAT. Precisioni o operazioni miste con altri tipi numerici supportati utilizzano
DECFLOAT(34). -
SUMeAVGritornoDECFLOAT(34).MINeMAXmantenere la precisione dell'input. -
SQRT,ABS, eROUNDaccettare direttamente DECFLOAT.
DECFLOAT_ROUNDING_MODE arrotondamento dei controlli per i lanci a DECFLOAT, +, -, *, /, SQRT, SUM, e AVG. Il valore predefinito è ROUND_HALF_EVEN. Altri modi supportati sono ROUND_HALF_UP, ROUND_CEILING, ROUND_FLOOR, e ROUND_DOWN.
DIV rimuove la parte frazionaria del risultato, indipendentemente da DECFLOAT_ROUNDING_MODE.
ROUND, BROUND, e TRUNCATE usano le proprie regole di arrotondamento.
> SET DECFLOAT_ROUNDING_MODE = ROUND_FLOOR;
> SELECT CURRENT_DECFLOAT_ROUNDING_MODE();
ROUND_FLOOR
Con la modalità di arrotondamento predefinita, il sovraplessamento produce infinito e la divisione per zero produce infinito o NaN. La modalità ANSI non cambia questi risultati. Le funzioni aritmetiche supportate TRY_* preservano l'infinito e NaN invece di restituire NULL. I NaN si confrontano uguali e ordinano dopo l'infinito positivo. Positivo e zero negativo si confrontano uguali. Usato ISNAN per rilevare NaN.
Examples
> SELECT CAST('1.5' AS DECFLOAT(34)) + CAST('2.5' AS DECFLOAT(34)) AS total;
+40E-1
> SELECT CAST(CAST('1.23E+100' AS DECFLOAT(34)) AS STRING);
+123E+98
> SELECT typeof(CAST('1' AS DECFLOAT(16)) + 1);
decfloat(34)
Limitations
- Le operazioni di resto e bit a bit non sono supportate.
- Le funzioni che richiedono
DOUBLEinput non accettano direttamente DECFLOAT. Converti il valore inDOUBLEprimo (questo può portare a una perdita di precisione). - DECFLOAT non è compatibile con i vettori di delezione. Quando si crea una tabella Delta con colonne DECFLOAT, si imposta
TBLPROPERTIES ('delta.enableDeletionVectors' = 'false'). Per le tabelle esistenti, elimina la caratteristica della tabella vettoriale di cancellazione prima di aggiungere le colonne DECFLOAT. - Le tabelle Delta contenenti DECFLOAT non possono avere le letture Iceberg attivate.
- Scrivere i valori DECFLOAT direttamente nei file Parquet non è supportato.
- Le colonne DECFLOAT non hanno statistiche minime/max per il salto dei dati. Non possono essere colonne di partizione, chiavi di clustering, colonne di ordine Z o colonne indice di filtro Bloom.
- Cambiare una colonna tra
DECFLOAT(16)eDECFLOAT(34)conALTER COLUMNnon è supportato.
Related
- Tipo di dati
- tipo
- tipo
-
castFunzione -
try_castFunzione