Fonction conv
S’applique à : Databricks SQL Databricks Runtime
Convertit num
de fromBase
en toBase
.
Syntaxe
conv(num, fromBase, toBase)
Arguments
num
: expressionSTRING
exprimant un nombre enfromBase
.fromBase
: expressionINTEGER
qui dénote la base de la source.toBase
: expressionINTEGER
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