Função conv
Aplica-se a: SQL do Databricks Runtime do Databricks
Converte num
de fromBase
em toBase
.
Sintaxe
conv(num, fromBase, toBase)
Argumentos
num
: Uma expressãoSTRING
que expressa um número emfromBase
.fromBase
: Uma expressãoINTEGER
que denota a base de origem.toBase
: Uma expressãoINTEGER
que denota a base de destino.
Retornos
Um STRING
.
A função é compatível com as bases 2 a 36.
O dígito "A" (ou "A") representa o decimal 10 e "Z" (ou "z") representa o decimal 35.
O intervalo de valores com suporte abrange o de um BIGINT
.
Se fromBase
for menor que 2, ou toBase
for -1, 0 ou 1, o resultado será NULL
.
Se toBase
for negativo, num
será interpretado como um único número conectado; caso contrário, será tratado como um número sem sinal.
Se num
estiver fora do intervalo Databricks SQL e Databricks Runtime 13.3 LTS e superior gera um ARITHMETIC_OVERFLOW.
Aviso
No Databricks Runtime, se spark.sql.ansi.enabled for false
, um estouro não causará um erro, mas "encapsulará" o resultado.
Exemplos
> 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