Partilhar via


Função conv

Aplica-se a: Marque Sim Databricks SQL Marque Sim Databricks Runtime

Converte num de fromBase para toBase.

Sintaxe

conv(num, fromBase, toBase)

Argumentos

  • num: Uma STRING expressão que expressa um número em fromBase.
  • fromBase: Uma INTEGER expressão que denota a base de origem.
  • toBase: Uma INTEGER 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 BIGINTarquivo .

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