conv
işlevi
Şunlar için geçerlidir: Databricks SQL Databricks Runtime
num
'den öğesine fromBase
toBase
dönüştürür.
Söz dizimi
conv(num, fromBase, toBase)
Bağımsız değişkenler
num
STRING
: içindefromBase
bir sayıyı ifade eden ifade.fromBase
INTEGER
: Kaynak tabanı belirten bir ifade.toBase
INTEGER
: Hedef tabanı belirten bir ifade.
Döndürülenler
Bir STRING
.
işlevi 2 tabanından 36 tabanına kadar destekler.
'A' (veya 'a'), ondalık 10'a ve 'Z' (veya 'z') ondalık 35'i temsil eder.
Desteklenen değer aralığı, değerinin BIGINT
aralığıdır.
2'den küçükse fromBase
veya toBase
-1, 0 veya 1 ise sonuç olur NULL
.
Negatif toBase
ise num
, imzalı bir sayı olarak yorumlanır, aksi takdirde imzasız bir sayı olarak kabul edilir.
Aralık dışındaysa num
Databricks SQL ve Databricks Runtime 13.3 LTS ve üzeri bir ARITHMETIC_OVERFLOW oluşturur.
Uyarı
Databricks Runtime'da spark.sql.ansi.enabled ise false
, taşma bir hataya neden olmaz ancak sonucu "sarmalar".
Örnekler
> 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