conv-Funktion

Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime

Konvertiert num von fromBase in toBase.

Syntax

conv(num, fromBase, toBase)

Argumente

  • num: Ein STRING-Ausdruck, der eine Zahl in fromBase ausgibt.
  • fromBase: Ein INTEGER-Ausdruck, der die Quellbasis angibt.
  • toBase: Ein INTEGER-Ausdruck, der die Zielbasis angibt.

Gibt zurück

Ein STRING.

Die Funktion unterstützt Base 2 bis Base 36. Die Ziffer „A“ (oder „a“) stellt die Dezimale 10 wobei „Z“ (oder „z“) die Dezimale 35 darstellt. Der unterstützte Wertebereich umfasst den von BIGINT.

Wenn fromBase kleiner als 2 oder toBase -1, 0 oder 1 ist, ist das Ergebnis NULL.

Wenn toBase negativ ist, wird num als Zahl mit Vorzeichen interpretiert, andernfalls wird der Wert als Zahl ohne Vorzeichen behandelt.

Wenn num außerhalb des Bereichs liegt, löst Databricks SQL und Databricks Runtime 13.0 und höher einen ARITHMETIC_OVERFLOW aus.

Warnung

Wenn in Databricks Runtime spark.sql.ansi.enabledfalse lautet, verursacht ein Überlauf keinen Fehler, sondern „umschließt“ das Ergebnis stattdessen.

Beispiele

> 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