No MariaDB,
ELT()
é uma função de string interna que aceita um argumento numérico, seguido por uma série de argumentos de string. Em seguida, ele retorna a string que corresponde à posição numérica fornecida pelo primeiro argumento. Sintaxe
A sintaxe fica assim:
ELT(N, str1[, str2, str3,...])
Onde
N
é o argumento numérico e str1[, str2, str3,…]
representa os argumentos da string. Exemplo
Segue um exemplo básico:
SELECT ELT(2, 'Red', 'Green', 'Blue');
Resultado:
+--------------------------------+ | ELT(2, 'Red', 'Green', 'Blue') | +--------------------------------+ | Green | +--------------------------------+
Neste caso, usamos
2
para retornar o segundo argumento de string. Flutuantes
Se o primeiro argumento for um
FLOAT
, o MariaDB arredonda para o inteiro mais próximo:SELECT
ELT(2.4, 'Red', 'Green', 'Blue') AS "2.4",
ELT(2.5, 'Red', 'Green', 'Blue') AS "2.5";
Resultado:
+-------+------+ | 2.4 | 2.5 | +-------+------+ | Green | Blue | +-------+------+
Especificando uma posição fora do alcance
Especificar uma posição fora do intervalo resulta em
null
sendo devolvido. Exemplos abaixo. Posição de Zero
Fornecendo
0
como o primeiro argumento retorna null
:SELECT ELT(0, 'Red', 'Green', 'Blue');
Resultado:
+--------------------------------+ | ELT(0, 'Red', 'Green', 'Blue') | +--------------------------------+ | NULL | +--------------------------------+
Posição negativa
Fornecer um valor negativo como o primeiro argumento retorna
null
:SELECT ELT(-2, 'Red', 'Green', 'Blue');
Resultado:
+---------------------------------+ | ELT(-2, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Quando a posição é muito grande
Se o primeiro argumento for um número maior que o número total de argumentos de string,
ELT()
retorna nulo:SELECT ELT(20, 'Red', 'Green', 'Blue');
Resultado:
+---------------------------------+ | ELT(20, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Posições não numéricas
Se o primeiro argumento não for um número,
ELT()
retorna null
:SELECT ELT('Two', 'Red', 'Green', 'Blue');
Resultado:
+------------------------------------+ | ELT('Two', 'Red', 'Green', 'Blue') | +------------------------------------+ | NULL | +------------------------------------+
Fornecendo apenas um argumento de string
Fornecer um único argumento de string é válido, embora neste caso o primeiro argumento precise ser
1
para evitar obter null
:SELECT ELT(1, 'Red');
Resultado:
+---------------+ | ELT(1, 'Red') | +---------------+ | Red | +---------------+
Strings nulas
Os argumentos de string podem ser
null
sem afetar o resultado dos demais:SELECT ELT(3, 'Red', null, 'Blue');
Resultado:
+-----------------------------+ | ELT(3, 'Red', null, 'Blue') | +-----------------------------+ | Blue | +-----------------------------+
Embora, especificar um número que corresponda ao
null
argumento string obviamente retornará null
:SELECT ELT(2, 'Red', null, 'Blue');
Resultado:
+-----------------------------+ | ELT(2, 'Red', null, 'Blue') | +-----------------------------+ | NULL | +-----------------------------+
Especificando uma posição nula
Fornecendo
null
pois o primeiro argumento resulta em null
:SELECT ELT(null, 'Red');
Resultado:
+------------------+ | ELT(null, 'Red') | +------------------+ | NULL | +------------------+
Argumento único
Fornecer apenas um argumento retorna um erro:
SELECT ELT(2);
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'
Argumento ausente
Chamando
ELT()
sem passar nenhum argumento resulta em um erro:SELECT ELT();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'