Convierte un número de una base a otra. CONV acepta representaciones del número de entrada tanto en formato entero como en cadena, y siempre devuelve un resultado de tipo VARCHAR.
La función CONV solo es compatible con Realtime Compute for Apache Flink que utiliza Ververica Runtime (VVR) 3.0.0 o versiones posteriores.
Sintaxis
VARCHAR CONV(BIGINT number, INT FROM_BASE, INT TO_BASE)
VARCHAR CONV(VARCHAR number, INT FROM_BASE, INT TO_BASE)
Parámetros
|
Parámetro |
Tipo de dato |
Descripción |
|
|
BIGINT o VARCHAR |
El número que se va a convertir. |
|
|
INT |
La base del número de entrada. Valores válidos: [2, 36]. |
|
|
INT |
La base a la que se convertirá el número. Valores positivos válidos: [2, 36]. Valores negativos válidos: [-36, -2]. |
Devoluciones
Una cadena VARCHAR que representa el número convertido.
Para bases superiores a 10, las letras representan dígitos:
A= 10,B= 11, ...,Z= 35.Devuelve
NULLsinumberesNULLo contiene caracteres no válidos para el parámetroFROM_BASEespecificado.La función opera con precisión de 64 bits.
Ejemplos
Conversión de base
SELECT conv('100', 2, 10);
-- 4
SELECT conv('A', 16, 10);
-- 10
Entradas NULL y no válidas
SELECT conv(NULL, 10, 16);
-- NULL
SELECT conv('test', 10, 2);
-- NULL (invalid characters for base 10)
Ejemplo con tabla
El ejemplo a continuación utiliza la tabla T1:
|
id (INT) |
x (BIGINT) |
y (VARCHAR) |
|
1 |
12 |
'12' |
|
2 |
10 |
'10' |
|
3 |
0 |
'test' |
|
4 |
NULL |
NULL |
Instrucción:
SELECT id, conv(x, 10, 16) AS var1, conv(y, 10, 2) AS var2
FROM T1;
Resultados:
|
id |
var1 |
var2 |
|
1 |
C |
1100 |
|
2 |
A |
1010 |
|
3 |
0 |
NULL |
|
4 |
NULL |
NULL |
Fila 3:
x=0se convierte en0en cualquier base.y='test'no es una entrada válida en base 10, por lo que se devuelveNULL.Fila 4: la entrada
NULLdevuelveNULL.