Função conv
Aplica-se a: Databricks SQL Databricks Runtime
Converte num
de fromBase
para toBase
.
Sintaxe
conv(num, fromBase, toBase)
Argumentos
num
: UmaSTRING
expressão que expressa um número emfromBase
.fromBase
: UmaINTEGER
expressão que denota a base de origem.toBase
: UmaINTEGER
expressão que denota a base de destino.
Devoluções
A STRING
.
A função suporta base 2 a base 36.
O algarismo «A» (ou «a») representa a casa decimal 10 e «Z» (ou «z») representa a casa decimal 35.
O intervalo de valores suportados abrange o de um BIGINT
arquivo .
Se fromBase
for menor que 2, ou toBase
for -1, 0 ou 1, o resultado será NULL
.
Se toBase
for negativo num
é interpretado como um número assinado, caso contrário, é tratado como um número não assinado.
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