Convertit un nombre d'une base à une autre. La fonction CONV accepte les représentations entières et textuelles du nombre en entrée, et renvoie toujours un résultat de type VARCHAR.
CONV est prise en charge uniquement dans Realtime Compute for Apache Flink utilisant Ververica Runtime (VVR) 3.0.0 ou une version ultérieure.
Syntaxe
VARCHAR CONV(BIGINT number, INT FROM_BASE, INT TO_BASE)
VARCHAR CONV(VARCHAR number, INT FROM_BASE, INT TO_BASE)
Paramètres
| Paramètre | Type de données | Description |
|---|---|---|
number |
BIGINT ou VARCHAR | Nombre à convertir. |
FROM_BASE |
INT | Base du nombre d'entrée. Valeurs valides : [2, 36]. |
TO_BASE |
INT | Base de destination. Valeurs positives valides : [2, 36]. Valeurs négatives valides : [-36, -2]. |
Valeur renvoyée
Une chaîne VARCHAR représentant le nombre converti.
Pour les bases supérieures à 10, les lettres représentent les chiffres :
A= 10,B= 11, ...,Z= 35.Renvoie
NULLsinumbervautNULLou contient des caractères non valides pour laFROM_BASEspécifiée.La fonction s'exécute avec une précision de 64 bits.
Exemples
Conversion de base
SELECT conv('100', 2, 10);
-- 4
SELECT conv('A', 16, 10);
-- 10
Entrées NULL et invalides
SELECT conv(NULL, 10, 16);
-- NULL
SELECT conv('test', 10, 2);
-- NULL (invalid characters for base 10)
Exemple basé sur une table
L'exemple suivant utilise la table T1 :
| id (INT) | x (BIGINT) | y (VARCHAR) |
|---|---|---|
| 1 | 12 | '12' |
| 2 | 10 | '10' |
| 3 | 0 | 'test' |
| 4 | NULL | NULL |
Instruction :
SELECT id, conv(x, 10, 16) AS var1, conv(y, 10, 2) AS var2
FROM T1;
Résultats :
| id | var1 | var2 |
|---|---|---|
| 1 | C | 1100 |
| 2 | A | 1010 |
| 3 | 0 | NULL |
| 4 | NULL | NULL |
Ligne 3 :
x=0se convertit en0quelle que soit la base.y='test'n'est pas une entrée valide en base 10, d'où le retour deNULL.Ligne 4 : une entrée
NULLrenvoieNULL.