Funkcja conv
Dotyczy: Databricks SQL Databricks Runtime
Konwertuje num
z fromBase
na toBase
.
Składnia
conv(num, fromBase, toBase)
Argumenty
num
: wyrażenieSTRING
wyrażające liczbę w elemfromBase
.fromBase
INTEGER
: wyrażenie oznaczające bazę źródłową.toBase
INTEGER
: Wyrażenie oznaczające bazę docelową.
Zwraca
Klasa STRING
.
Funkcja obsługuje od base 2 do base 36.
Cyfra "A" (lub "a") reprezentuje dziesiętne 10 i "Z" (lub "z").
Obsługiwany zakres wartości obejmuje zakres wartości.BIGINT
Jeśli fromBase
wartość jest mniejsza niż 2 lub toBase
wynosi -1, 0 lub 1, wynik to NULL
.
Jeśli toBase
wartość ujemna num
jest interpretowana jako liczba podpisana, w przeciwnym razie jest traktowana jako niepodpisany numer.
Jeśli num
nie ma zakresu usług Databricks SQL i Databricks Runtime 13.3 LTS i nowszych , zgłasza ARITHMETIC_OVERFLOW.
Ostrzeżenie
W środowisku Databricks Runtime, jeśli spark.sql.ansi.enabled to false
, przepełnienie nie powoduje błędu, ale "owija" wynik.
Przykłady
> 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