Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Fonction
S’applique à : Databricks SQL
Databricks Runtime
Convertit num
de fromBase
en toBase
.
Syntaxe
conv(num, fromBase, toBase)
Les 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 décimale 10 et 'Z' (ou 'z') représente la 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