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'