В MariaDB, ELT()
е вградена низова функция, която приема числов аргумент, последван от поредица от низови аргументи. След това връща низа, който съответства на дадената числова позиция, предоставена от първия аргумент.
Синтаксис
Синтаксисът е така:
ELT(N, str1[, str2, str3,...])
Където N
е числовият аргумент и str1[, str2, str3,…]
представлява низовите аргументи.
Пример
Ето един основен пример:
SELECT ELT(2, 'Red', 'Green', 'Blue');
Резултат:
+--------------------------------+ | ELT(2, 'Red', 'Green', 'Blue') | +--------------------------------+ | Green | +--------------------------------+
В този случай използвахме 2
за да върнете втория аргумент на низа.
Плувки
Ако първият аргумент е FLOAT
, MariaDB го закръгля до най-близкото цяло число:
SELECT
ELT(2.4, 'Red', 'Green', 'Blue') AS "2.4",
ELT(2.5, 'Red', 'Green', 'Blue') AS "2.5";
Резултат:
+-------+------+ | 2.4 | 2.5 | +-------+------+ | Green | Blue | +-------+------+
Указване на позиция извън обхват
Посочването на позиция извън обхвата води до null
се връща. Примери по-долу.
Позиция на нула
Предоставяне на 0
като първият аргумент връща null
:
SELECT ELT(0, 'Red', 'Green', 'Blue');
Резултат:
+--------------------------------+ | ELT(0, 'Red', 'Green', 'Blue') | +--------------------------------+ | NULL | +--------------------------------+
Отрицателна позиция
Предоставянето на отрицателна стойност като първи аргумент връща null
:
SELECT ELT(-2, 'Red', 'Green', 'Blue');
Резултат:
+---------------------------------+ | ELT(-2, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Когато позицията е твърде голяма
Ако първият аргумент е число, което е по-голямо от общия брой аргументи на низ, ELT()
връща null:
SELECT ELT(20, 'Red', 'Green', 'Blue');
Резултат:
+---------------------------------+ | ELT(20, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Нечислови позиции
Ако първият аргумент не е число, ELT()
връща null
:
SELECT ELT('Two', 'Red', 'Green', 'Blue');
Резултат:
+------------------------------------+ | ELT('Two', 'Red', 'Green', 'Blue') | +------------------------------------+ | NULL | +------------------------------------+
Предоставяне само на един низов аргумент
Предоставянето на единичен низов аргумент е валидно, въпреки че в този случай първият аргумент трябва да бъде 1
за да избегнете получаването на null
:
SELECT ELT(1, 'Red');
Резултат:
+---------------+ | ELT(1, 'Red') | +---------------+ | Red | +---------------+
Нулеви низове
Аргументите на низ могат да бъдат null
без да засяга резултата от останалите:
SELECT ELT(3, 'Red', null, 'Blue');
Резултат:
+-----------------------------+ | ELT(3, 'Red', null, 'Blue') | +-----------------------------+ | Blue | +-----------------------------+
Въпреки това, посочване на число, което съответства на null
аргумент string очевидно ще върне null
:
SELECT ELT(2, 'Red', null, 'Blue');
Резултат:
+-----------------------------+ | ELT(2, 'Red', null, 'Blue') | +-----------------------------+ | NULL | +-----------------------------+
Указване на нулева позиция
Предоставяне на null
тъй като първият аргумент води до null
:
SELECT ELT(null, 'Red');
Резултат:
+------------------+ | ELT(null, 'Red') | +------------------+ | NULL | +------------------+
Единичен аргумент
Предоставянето само на един аргумент връща грешка:
SELECT ELT(2);
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'
Липсващ аргумент
Извикване на ELT()
без подаване на аргументи води до грешка:
SELECT ELT();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'