MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona ELT() in MariaDB

In MariaDB, ELT() è una funzione stringa incorporata che accetta un argomento numerico, seguito da una serie di argomenti stringa. Quindi restituisce la stringa che corrisponde alla posizione numerica fornita dal primo argomento.

Sintassi

La sintassi è questa:

ELT(N, str1[, str2, str3,...])

Dove N è l'argomento numerico e str1[, str2, str3,…] rappresenta gli argomenti della stringa.

Esempio

Ecco un esempio di base:

SELECT ELT(2, 'Red', 'Green', 'Blue');

Risultato:

+--------------------------------+
| ELT(2, 'Red', 'Green', 'Blue') |
+--------------------------------+
| Green                          |
+--------------------------------+

In questo caso, abbiamo utilizzato 2 per restituire il secondo argomento stringa.

Galleggia

Se il primo argomento è un FLOAT , MariaDB lo arrotonda al numero intero più vicino:

SELECT 
    ELT(2.4, 'Red', 'Green', 'Blue') AS "2.4",
    ELT(2.5, 'Red', 'Green', 'Blue') AS "2.5";

Risultato:

+-------+------+
| 2.4   | 2.5  |
+-------+------+
| Green | Blue |
+-------+------+

Specifica di una posizione fuori range

Specificando una posizione fuori range risulta null essere restituito. Esempi sotto.

Posizione di zero

Fornire 0 poiché il primo argomento restituisce null :

SELECT ELT(0, 'Red', 'Green', 'Blue');

Risultato:

+--------------------------------+
| ELT(0, 'Red', 'Green', 'Blue') |
+--------------------------------+
| NULL                           |
+--------------------------------+

Posizione negativa

Fornire un valore negativo come primo argomento restituisce null :

SELECT ELT(-2, 'Red', 'Green', 'Blue');

Risultato:

+---------------------------------+
| ELT(-2, 'Red', 'Green', 'Blue') |
+---------------------------------+
| NULL                            |
+---------------------------------+

Quando la posizione è troppo grande

Se il primo argomento è un numero maggiore del numero totale di argomenti stringa, ELT() restituisce nullo:

SELECT ELT(20, 'Red', 'Green', 'Blue');

Risultato:

+---------------------------------+
| ELT(20, 'Red', 'Green', 'Blue') |
+---------------------------------+
| NULL                            |
+---------------------------------+

Posizioni non numeriche

Se il primo argomento non è un numero, ELT() restituisce null :

SELECT ELT('Two', 'Red', 'Green', 'Blue');

Risultato:

+------------------------------------+
| ELT('Two', 'Red', 'Green', 'Blue') |
+------------------------------------+
| NULL                               |
+------------------------------------+

Fornire un solo argomento di stringa

Fornire un singolo argomento stringa è valido, anche se in questo caso il primo argomento dovrebbe essere 1 per evitare di ottenere null :

SELECT ELT(1, 'Red');

Risultato:

+---------------+
| ELT(1, 'Red') |
+---------------+
| Red           |
+---------------+

Stringhe nulle

Gli argomenti stringa possono essere null senza pregiudicare l'esito degli altri:

SELECT ELT(3, 'Red', null, 'Blue');

Risultato:

+-----------------------------+
| ELT(3, 'Red', null, 'Blue') |
+-----------------------------+
| Blue                        |
+-----------------------------+

Tuttavia, specificando un numero che corrisponde a null l'argomento stringa restituirà ovviamente null :

SELECT ELT(2, 'Red', null, 'Blue');

Risultato:

+-----------------------------+
| ELT(2, 'Red', null, 'Blue') |
+-----------------------------+
| NULL                        |
+-----------------------------+

Specifica di una posizione nulla

Fornendo null poiché il primo argomento risulta null :

SELECT ELT(null, 'Red');

Risultato:

+------------------+
| ELT(null, 'Red') |
+------------------+
| NULL             |
+------------------+

Singolo argomento

Fornire un solo argomento restituisce un errore:

SELECT ELT(2);

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'

Argomento mancante

Chiamando ELT() senza passare alcun argomento genera un errore:

SELECT ELT();

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'