Funzione conv
Si applica a: Databricks SQL Databricks Runtime
Converte num
da fromBase
a toBase
.
Sintassi
conv(num, fromBase, toBase)
Argomenti
num
STRING
: espressione che esprime un numero infromBase
.fromBase
INTEGER
: espressione che indica la base di origine.toBase
INTEGER
: espressione che indica la base di destinazione.
Valori restituiti
Un oggetto STRING
.
La funzione supporta da base 2 a base 36.
La cifra 'A' (o 'a') rappresenta decimale 10 e 'Z' (o 'z') rappresenta il separatore decimale 35.
L'intervallo di valori supportati si estende su quello di un oggetto BIGINT
.
Se fromBase
è minore di 2 o toBase
è -1, 0 o 1, il risultato è NULL
.
Se toBase
è negativo num
viene interpretato come un numero con segno, in caso contrario viene considerato come un numero senza segno.
Se num
non è compreso nell'intervallo SQL e Databricks Runtime 13.3 LTS e versioni successive genera un ARITHMETIC_OVERFLOW.
Avviso
In Databricks Runtime se spark.sql.ansi.enabled è false
, un overflow non genera un errore ma "esegue il wrapping" del risultato.
Esempi
> SELECT conv('100', 2, 10);
4
> SELECT conv('-10', 16, 10);
18446744073709551600
> SELECT conv('-10', 16, -10);
-16
> SELECT conv('-1', 10, 10);
18446744073709551615
> SELECT conv('FFFFFFFFFFFFFFFFF', 16, 10);
Error: ARITHMETIC_OVERFLOW
> SELECT conv('FFFFFFFFFFFFFFFF', 16, 10);
18446744073709551615
> SELECT conv('FFFFFFFFFFFFFFFF', 16, -10);
-1