MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como o ELT() funciona no MariaDB


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'