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'