Функция conv
Область применения: Databricks SQL Databricks Runtime
Преобразует число num
из системы счисления с основанием fromBase
в систему счисления с основанием toBase
.
Синтаксис
conv(num, fromBase, toBase)
Аргументы
-
num
STRING
: выражение, в которых выражается числоfromBase
. -
fromBase
INTEGER
: выражение, обозначающее исходную базу. -
toBase
INTEGER
: выражение, обозначающее целевую базу.
Возвраты
STRING
.
Функция поддерживает системы счисления с основанием от 2 до 36.
Цифра A (или а) представляет десятичное число 10, а Z (или z) — десятичное число 35.
Диапазон поддерживаемых значений аналогичен диапазону BIGINT
.
Если fromBase
значение меньше 2 или toBase
равно -1, 0 или 1, результат будет.NULL
Если toBase
отрицательный num
аргумент интерпретируется как подписанный номер, в противном случае он будет рассматриваться как неподписанный номер.
Если num
в диапазоне Databricks SQL и Databricks Runtime 13.3 LTS и выше возникает ARITHMETIC_OVERFLOW.
Предупреждение
В Databricks Runtime, если spark.sql.ansi.enabledfalse
, переполнение не приводит к ошибке, но "обертывает" результат.
Примеры
> 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