I MariaDB, ELT()
er en indbygget strengfunktion, der accepterer et numerisk argument efterfulgt af en række strengargumenter. Det returnerer derefter den streng, der svarer til den givne numeriske position, som det første argument giver.
Syntaks
Syntaksen ser sådan ud:
ELT(N, str1[, str2, str3,...])
Hvor N
er det numeriske argument, og str1[, str2, str3,…]
repræsenterer strengargumenterne.
Eksempel
Her er et grundlæggende eksempel:
SELECT ELT(2, 'Red', 'Green', 'Blue');
Resultat:
+--------------------------------+ | ELT(2, 'Red', 'Green', 'Blue') | +--------------------------------+ | Green | +--------------------------------+
I dette tilfælde brugte vi 2
for at returnere det andet strengargument.
Flyder
Hvis det første argument er en FLOAT
, MariaDB runder det af til det nærmeste heltal:
SELECT
ELT(2.4, 'Red', 'Green', 'Blue') AS "2.4",
ELT(2.5, 'Red', 'Green', 'Blue') AS "2.5";
Resultat:
+-------+------+ | 2.4 | 2.5 | +-------+------+ | Green | Blue | +-------+------+
Specificering af en position uden for rækkevidde
Angivelse af en position uden for rækkevidde resulterer i null
bliver returneret. Eksempler nedenfor.
Nulstilling
Giver 0
som det første argument returnerer null
:
SELECT ELT(0, 'Red', 'Green', 'Blue');
Resultat:
+--------------------------------+ | ELT(0, 'Red', 'Green', 'Blue') | +--------------------------------+ | NULL | +--------------------------------+
Negativ position
Angivelse af en negativ værdi som det første argument returnerer null
:
SELECT ELT(-2, 'Red', 'Green', 'Blue');
Resultat:
+---------------------------------+ | ELT(-2, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Når positionen er for stor
Hvis det første argument er et tal, der er større end det samlede antal strengargumenter, ELT()
returnerer null:
SELECT ELT(20, 'Red', 'Green', 'Blue');
Resultat:
+---------------------------------+ | ELT(20, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Ikke-numeriske positioner
Hvis det første argument ikke er et tal, ELT()
returnerer null
:
SELECT ELT('Two', 'Red', 'Green', 'Blue');
Resultat:
+------------------------------------+ | ELT('Two', 'Red', 'Green', 'Blue') | +------------------------------------+ | NULL | +------------------------------------+
Giver kun ét strengargument
Angivelse af et enkelt strengargument er gyldigt, selvom det første argument i dette tilfælde skal være 1
for at undgå at få null
:
SELECT ELT(1, 'Red');
Resultat:
+---------------+ | ELT(1, 'Red') | +---------------+ | Red | +---------------+
Nulstrenge
Strengargumenter kan være null
uden at påvirke resultatet af de andre:
SELECT ELT(3, 'Red', null, 'Blue');
Resultat:
+-----------------------------+ | ELT(3, 'Red', null, 'Blue') | +-----------------------------+ | Blue | +-----------------------------+
Selvom det angives et tal, der matcher null
string-argument vil naturligvis returnere null
:
SELECT ELT(2, 'Red', null, 'Blue');
Resultat:
+-----------------------------+ | ELT(2, 'Red', null, 'Blue') | +-----------------------------+ | NULL | +-----------------------------+
Angivelse af en nulposition
Giver null
da det første argument resulterer i null
:
SELECT ELT(null, 'Red');
Resultat:
+------------------+ | ELT(null, 'Red') | +------------------+ | NULL | +------------------+
Enkelt argument
Angivelse af kun ét argument returnerer en fejl:
SELECT ELT(2);
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'
Manglende argument
Kalder ELT()
uden at sende nogen argumenter resulterer det i en fejl:
SELECT ELT();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'