conv
-Funktion
Gilt für: Databricks SQL Databricks Runtime
Konvertiert num
von fromBase
in toBase
.
Syntax
conv(num, fromBase, toBase)
Argumente
num
: EinSTRING
-Ausdruck, der eine Zahl infromBase
ausgibt.fromBase
: EinINTEGER
-Ausdruck, der die Quellbasis angibt.toBase
: EinINTEGER
-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.3 LTS 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