Partager via


Fonction conv

S’applique à : case marquée oui Databricks SQL case marquée oui Databricks Runtime

Convertit num de fromBase en toBase.

Syntaxe

conv(num, fromBase, toBase)

Arguments

  • num : expression STRING exprimant un nombre en fromBase.
  • fromBase : expression INTEGER qui dénote la base de la source.
  • toBase : expression INTEGER qui dénote la base de la cible.

Retours

STRING.

La fonction prend en charge de la base 2 à la base 36. Le chiffre « A » (ou « a ») représente la valeur décimale 10 et « Z » (ou « z ») représente la valeur décimale 35. La plage de valeurs prises en charge s’étend sur celle d’un BIGINT.

Si fromBase est inférieur à 2 ou si toBase est égal à -1, 0 ou 1, le résultat est NULL.

Si toBase est négatif, num est interprété comme un nombre signé, sinon il est traité comme un nombre non signé.

Si num est hors limites, Databricks SQL et Databricks Runtime 13.3 LTS et versions ultérieures déclenchent un ARITHMETIC_OVERFLOW.

Avertissement

Dans Databricks Runtime, si spark.sql.ansi.enabled est false, un dépassement de capacité ne provoque pas d’erreur, mais « enveloppe » le résultat à la place.

Exemples

> 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