Partilhar via


Função conv

Aplica-se a:assinalado como sim Databricks SQL assinalado como 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

Um STRING.

A função suporta base 2 a base 36. O algarismo «A» (ou «a») representa o número decimal 10 e «Z» (ou «z») representa o número decimal 35. O intervalo de valores suportados abrange o de um BIGINT.

Se fromBase for menor que 2, ou toBase for -1, 0, ou 1, então 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, o Databricks SQL e o Databricks Runtime 13.3 LTS e versões superiores geram um ARITHMETIC_OVERFLOW.

Aviso

No Databricks Runtime, se spark.sql.ansi.enabled estiver ativado, um overflow não causa um erro, mas continua 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