In MariaDB, ELT()
is een ingebouwde tekenreeksfunctie die een numeriek argument accepteert, gevolgd door een reeks tekenreeksargumenten. Het geeft dan de tekenreeks terug die overeenkomt met de gegeven numerieke positie die door het eerste argument is opgegeven.
Syntaxis
De syntaxis gaat als volgt:
ELT(N, str1[, str2, str3,...])
Waar N
is het numerieke argument, en str1[, str2, str3,…]
vertegenwoordigt de stringargumenten.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT ELT(2, 'Red', 'Green', 'Blue');
Resultaat:
+--------------------------------+ | ELT(2, 'Red', 'Green', 'Blue') | +--------------------------------+ | Green | +--------------------------------+
In dit geval gebruikten we 2
om het tweede tekenreeksargument terug te geven.
Drijft
Als het eerste argument een FLOAT
. is , MariaDB rondt het af op het dichtstbijzijnde gehele getal:
SELECT
ELT(2.4, 'Red', 'Green', 'Blue') AS "2.4",
ELT(2.5, 'Red', 'Green', 'Blue') AS "2.5";
Resultaat:
+-------+------+ | 2.4 | 2.5 | +-------+------+ | Green | Blue | +-------+------+
Een positie buiten bereik specificeren
Het specificeren van een positie buiten bereik resulteert in null
wordt teruggestuurd. Voorbeelden hieronder.
Positie van nul
Het verstrekken van 0
als het eerste argument null
teruggeeft :
SELECT ELT(0, 'Red', 'Green', 'Blue');
Resultaat:
+--------------------------------+ | ELT(0, 'Red', 'Green', 'Blue') | +--------------------------------+ | NULL | +--------------------------------+
Negatieve positie
Het verstrekken van een negatieve waarde als het eerste argument retourneert null
:
SELECT ELT(-2, 'Red', 'Green', 'Blue');
Resultaat:
+---------------------------------+ | ELT(-2, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Als de positie te groot is
Als het eerste argument een getal is dat groter is dan het totale aantal stringargumenten, ELT()
geeft null terug:
SELECT ELT(20, 'Red', 'Green', 'Blue');
Resultaat:
+---------------------------------+ | ELT(20, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Niet-numerieke posities
Als het eerste argument geen getal is, ELT()
retourneert null
:
SELECT ELT('Two', 'Red', 'Green', 'Blue');
Resultaat:
+------------------------------------+ | ELT('Two', 'Red', 'Green', 'Blue') | +------------------------------------+ | NULL | +------------------------------------+
Slechts één stringargument geven
Het opgeven van een enkel stringargument is geldig, hoewel in dit geval het eerste argument 1
moet zijn om te voorkomen dat u null
. krijgt :
SELECT ELT(1, 'Red');
Resultaat:
+---------------+ | ELT(1, 'Red') | +---------------+ | Red | +---------------+
Null-tekenreeksen
Tekenreeksargumenten kunnen null
. zijn zonder de uitkomst van de anderen te beïnvloeden:
SELECT ELT(3, 'Red', null, 'Blue');
Resultaat:
+-----------------------------+ | ELT(3, 'Red', null, 'Blue') | +-----------------------------+ | Blue | +-----------------------------+
Hoewel, een nummer opgeven dat overeenkomt met de null
string argument zal uiteraard null
retourneren :
SELECT ELT(2, 'Red', null, 'Blue');
Resultaat:
+-----------------------------+ | ELT(2, 'Red', null, 'Blue') | +-----------------------------+ | NULL | +-----------------------------+
Een nulpositie specificeren
null
opgeven aangezien het eerste argument resulteert in null
:
SELECT ELT(null, 'Red');
Resultaat:
+------------------+ | ELT(null, 'Red') | +------------------+ | NULL | +------------------+
Enkel argument
Het verstrekken van slechts één argument levert een fout op:
SELECT ELT(2);
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'
Ontbrekend argument
Bellen ELT()
zonder het doorgeven van argumenten resulteert in een fout:
SELECT ELT();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'