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'