Функция conv

Область применения:проверка помечены да Databricks SQL проверка помечены да Databricks Runtime

Преобразует число num из системы счисления с основанием fromBase в систему счисления с основанием toBase.

Синтаксис

conv(num, fromBase, toBase)

Аргументы

  • numSTRING: выражение, в которых выражается числоfromBase.
  • fromBaseINTEGER: выражение, обозначающее исходную базу.
  • toBaseINTEGER: выражение, обозначающее целевую базу.

Возвраты

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