Converte um número de uma base para outra. A função CONV aceita representações inteiras e strings do número de entrada e sempre retorna um resultado VARCHAR.
O suporte à função CONV está disponível apenas no Realtime Compute for Apache Flink com Ververica Runtime (VVR) 3.0.0 ou superior.
Sintaxe
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 dados |
Descrição |
|
|
BIGINT ou VARCHAR |
Número a converter. |
|
|
INT |
Base do número de entrada. Valores válidos: [2, 36]. |
|
|
INT |
Base de destino da conversão. Valores positivos válidos: [2, 36]. Valores negativos válidos: [-36, -2]. |
Retorno
Uma string VARCHAR que representa o número convertido.
Em bases superiores a 10, letras representam dígitos:
A= 10,B= 11, ...,Z= 35.Retorna
NULLsenumberforNULLou contiver caracteres inválidos para aFROM_BASEespecificada.A função opera com precisão de 64 bits.
Exemplos
Conversão de base
SELECT conv('100', 2, 10);
-- 4
SELECT conv('A', 16, 10);
-- 10
Entrada NULL e inválida
SELECT conv(NULL, 10, 16);
-- NULL
SELECT conv('test', 10, 2);
-- NULL (invalid characters for base 10)
Exemplo com tabela
O exemplo a seguir utiliza a tabela T1:
|
id (INT) |
x (BIGINT) |
y (VARCHAR) |
|
1 |
12 |
'12' |
|
2 |
10 |
'10' |
|
3 |
0 |
'test' |
|
4 |
NULL |
NULL |
Instrução:
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 |
Linha 3:
x=0converte-se para0em qualquer base. Comoy='test'não é uma entrada válida para a base 10, o retorno éNULL.Linha 4: A entrada
NULLresulta emNULL.