Udostępnij za pośrednictwem


Funkcja conv

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Konwertuje num z fromBase na toBase.

Składnia

conv(num, fromBase, toBase)

Argumenty

  • num: Wyrażenie STRING wyrażające liczbę w postaci fromBase.
  • 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