I MariaDB, ELT()
är en inbyggd strängfunktion som accepterar ett numeriskt argument, följt av en serie strängargument. Den returnerar sedan strängen som motsvarar den givna numeriska positionen som tillhandahålls av det första argumentet.
Syntax
Syntaxen ser ut så här:
ELT(N, str1[, str2, str3,...])
Där N
är det numeriska argumentet och str1[, str2, str3,…]
representerar strängargumenten.
Exempel
Här är ett grundläggande exempel:
SELECT ELT(2, 'Red', 'Green', 'Blue');
Resultat:
+--------------------------------+ | ELT(2, 'Red', 'Green', 'Blue') | +--------------------------------+ | Green | +--------------------------------+
I det här fallet använde vi 2
för att returnera det andra strängargumentet.
Flytande
Om det första argumentet är en FLOAT
, MariaDB avrundar det till närmaste 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 | +-------+------+
Ange en position utanför räckvidd
Att ange en position utanför intervallet resulterar i null
återlämnas. Exempel nedan.
Nollposition
Tillhandahåller 0
som det första argumentet returnerar null
:
SELECT ELT(0, 'Red', 'Green', 'Blue');
Resultat:
+--------------------------------+ | ELT(0, 'Red', 'Green', 'Blue') | +--------------------------------+ | NULL | +--------------------------------+
Negativ position
Om du anger ett negativt värde som det första argumentet returneras null
:
SELECT ELT(-2, 'Red', 'Green', 'Blue');
Resultat:
+---------------------------------+ | ELT(-2, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
När positionen är för stor
Om det första argumentet är ett tal som är större än det totala antalet strängargument, ELT()
returnerar null:
SELECT ELT(20, 'Red', 'Green', 'Blue');
Resultat:
+---------------------------------+ | ELT(20, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Icke-numeriska positioner
Om det första argumentet inte är ett tal, ELT()
returnerar null
:
SELECT ELT('Two', 'Red', 'Green', 'Blue');
Resultat:
+------------------------------------+ | ELT('Two', 'Red', 'Green', 'Blue') | +------------------------------------+ | NULL | +------------------------------------+
Ge bara ett strängargument
Att tillhandahålla ett enda strängargument är giltigt, även om det första argumentet i det här fallet måste vara 1
för att undvika att få null
:
SELECT ELT(1, 'Red');
Resultat:
+---------------+ | ELT(1, 'Red') | +---------------+ | Red | +---------------+
Nullsträngar
Strängargument kan vara null
utan att påverka resultatet av de andra:
SELECT ELT(3, 'Red', null, 'Blue');
Resultat:
+-----------------------------+ | ELT(3, 'Red', null, 'Blue') | +-----------------------------+ | Blue | +-----------------------------+
Dock, ange ett nummer som matchar null
strängargument kommer uppenbarligen att returnera null
:
SELECT ELT(2, 'Red', null, 'Blue');
Resultat:
+-----------------------------+ | ELT(2, 'Red', null, 'Blue') | +-----------------------------+ | NULL | +-----------------------------+
Ange en nollposition
Tillhandahåller null
eftersom det första argumentet resulterar i null
:
SELECT ELT(null, 'Red');
Resultat:
+------------------+ | ELT(null, 'Red') | +------------------+ | NULL | +------------------+
Enstaka argument
Om du bara anger ett argument returneras ett fel:
SELECT ELT(2);
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'
Argument saknas
Anropar ELT()
utan att skicka några argument resulterar i ett fel:
SELECT ELT();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'