Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja
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 postacifromBase
. -
fromBase
INTEGER
: wyrażenie oznaczające bazę źródłową. -
toBase
INTEGER
: Wyrażenie oznaczające bazę docelową.
Zwraca
Element STRING
.
Funkcja obsługuje od base 2 do base 36.
Cyfra "A" (lub "a") reprezentuje dziesiętne 10, a "Z" (lub "z") reprezentuje dziesiętne 35.
Zakres obsługiwanych wartości odpowiada zakresowi BIGINT
.
Jeśli fromBase
wartość jest mniejsza niż 2 lub toBase
wynosi -1, 0 lub 1, wynik to NULL
.
Jeśli toBase
jest ujemny, num
jest interpretowany jako liczba ze znakiem; w przeciwnym razie traktowany jest jako liczba bez znaku.
Jeśli num
jest poza zakresem, Databricks SQL i Databricks Runtime 13.3 LTS i nowsze zgłaszają błąd ARITHMETIC_OVERFLOW.
Ostrzeżenie
W środowisku Databricks Runtime, jeśli spark.sql.ansi.enabled jest 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