V MariaDB, ELT()
je vestavěná řetězcová funkce, která přijímá číselný argument následovaný řadou řetězcových argumentů. Poté vrátí řetězec, který odpovídá dané číselné pozici poskytnuté prvním argumentem.
Syntaxe
Syntaxe vypadá takto:
ELT(N, str1[, str2, str3,...])
Kde N
je číselný argument a str1[, str2, str3,…]
představuje argumenty řetězce.
Příklad
Zde je základní příklad:
SELECT ELT(2, 'Red', 'Green', 'Blue');
Výsledek:
+--------------------------------+ | ELT(2, 'Red', 'Green', 'Blue') | +--------------------------------+ | Green | +--------------------------------+
V tomto případě jsme použili 2
vrátit argument druhého řetězce.
Plováky
Pokud je prvním argumentem FLOAT
, MariaDB jej zaokrouhlí na nejbližší celé číslo:
SELECT
ELT(2.4, 'Red', 'Green', 'Blue') AS "2.4",
ELT(2.5, 'Red', 'Green', 'Blue') AS "2.5";
Výsledek:
+-------+------+ | 2.4 | 2.5 | +-------+------+ | Green | Blue | +-------+------+
Určení polohy mimo rozsah
Zadání pozice mimo rozsah má za následek null
vracení. Příklady níže.
Pozice nula
Poskytování 0
jako první argument vrací null
:
SELECT ELT(0, 'Red', 'Green', 'Blue');
Výsledek:
+--------------------------------+ | ELT(0, 'Red', 'Green', 'Blue') | +--------------------------------+ | NULL | +--------------------------------+
Záporná pozice
Zadání záporné hodnoty jako prvního argumentu vrátí null
:
SELECT ELT(-2, 'Red', 'Green', 'Blue');
Výsledek:
+---------------------------------+ | ELT(-2, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Když je pozice příliš velká
Pokud je prvním argumentem číslo, které je větší než celkový počet argumentů řetězce, ELT()
vrátí hodnotu null:
SELECT ELT(20, 'Red', 'Green', 'Blue');
Výsledek:
+---------------------------------+ | ELT(20, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Nečíselné pozice
Pokud první argument není číslo, ELT()
vrátí null
:
SELECT ELT('Two', 'Red', 'Green', 'Blue');
Výsledek:
+------------------------------------+ | ELT('Two', 'Red', 'Green', 'Blue') | +------------------------------------+ | NULL | +------------------------------------+
Poskytování pouze jednoho řetězcového argumentu
Zadání jediného řetězcového argumentu je platné, i když v tomto případě by první argument musel být 1
abyste se vyhnuli zobrazení null
:
SELECT ELT(1, 'Red');
Výsledek:
+---------------+ | ELT(1, 'Red') | +---------------+ | Red | +---------------+
Nulové řetězce
Argumenty řetězce mohou být null
aniž by to ovlivnilo výsledek ostatních:
SELECT ELT(3, 'Red', null, 'Blue');
Výsledek:
+-----------------------------+ | ELT(3, 'Red', null, 'Blue') | +-----------------------------+ | Blue | +-----------------------------+
I když, zadáním čísla, které odpovídá null
string argument zjevně vrátí null
:
SELECT ELT(2, 'Red', null, 'Blue');
Výsledek:
+-----------------------------+ | ELT(2, 'Red', null, 'Blue') | +-----------------------------+ | NULL | +-----------------------------+
Určení nulové pozice
Poskytování null
jako první argument je výsledkem null
:
SELECT ELT(null, 'Red');
Výsledek:
+------------------+ | ELT(null, 'Red') | +------------------+ | NULL | +------------------+
Jeden argument
Zadání pouze jednoho argumentu vrátí chybu:
SELECT ELT(2);
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'
Chybí argument
Volání ELT()
bez předání jakýchkoli argumentů dojde k chybě:
SELECT ELT();
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'