Bir sayıyı bir tabandan başka bir tabana dönüştürür. CONV işlevi, giriş sayısının hem tamsayı hem de dize gösterimlerini kabul eder ve her zaman bir VARCHAR sonucu döndürür.
CONV yalnızca Ververica Runtime (VVR) 3.0.0 veya sonraki sürümleri kullanan Realtime Compute for Apache Flink içinde desteklenir.
Söz dizimi
VARCHAR CONV(BIGINT number, INT FROM_BASE, INT TO_BASE)
VARCHAR CONV(VARCHAR number, INT FROM_BASE, INT TO_BASE)
Parametreler
| Parametre | Veri türü | Açıklama |
|---|---|---|
number |
BIGINT veya VARCHAR | Dönüştürülecek sayı. |
FROM_BASE |
INT | Giriş sayısının tabanı. Geçerli değerler: [2, 36]. |
TO_BASE |
INT | Dönüştürülecek taban. Pozitif geçerli değerler: [2, 36]. Negatif geçerli değerler: [-36, -2]. |
Dönüş değeri
Dönüştürülen sayıyı temsil eden bir VARCHAR dizesi.
10'dan büyük tabanlar için harfler basamakları temsil eder:
A= 10,B= 11, ...,Z= 35.numberdeğeriNULLise veya belirtilenFROM_BASEiçin geçersiz karakterler içeriyorsaNULLdöndürür.İşlev 64 bit hassasiyetle çalışır.
Örnekler
Taban dönüştürme
SELECT conv('100', 2, 10);
-- 4
SELECT conv('A', 16, 10);
-- 10
NULL ve geçersiz giriş
SELECT conv(NULL, 10, 16);
-- NULL
SELECT conv('test', 10, 2);
-- NULL (invalid characters for base 10)
Tablo tabanlı örnek
Aşağıdaki örnekte T1 adlı bir tablo kullanılmaktadır:
| id (INT) | x (BIGINT) | y (VARCHAR) |
|---|---|---|
| 1 | 12 | '12' |
| 2 | 10 | '10' |
| 3 | 0 | 'test' |
| 4 | NULL | NULL |
Sorgu:
SELECT id, conv(x, 10, 16) AS var1, conv(y, 10, 2) AS var2
FROM T1;
Sonuçlar:
| id | var1 | var2 |
|---|---|---|
| 1 | C | 1100 |
| 2 | A | 1010 |
| 3 | 0 | NULL |
| 4 | NULL | NULL |
satır:
x=0değeri herhangi bir tabanda0olarak dönüştürülür.y='test'değeri 10 tabanı için geçerli bir giriş olmadığındanNULLdöndürülür.satır:
NULLgirişiNULLsonucunu verir.