W MariaDB, ELT()
to wbudowana funkcja łańcuchowa, która akceptuje argument numeryczny, po którym następuje seria argumentów łańcuchowych. Następnie zwraca ciąg, który odpowiada podanej pozycji numerycznej podanej w pierwszym argumencie.
Składnia
Składnia wygląda tak:
ELT(N, str1[, str2, str3,...])
Gdzie N
jest argumentem liczbowym, a str1[, str2, str3,…]
reprezentuje argumenty ciągu.
Przykład
Oto podstawowy przykład:
SELECT ELT(2, 'Red', 'Green', 'Blue');
Wynik:
+--------------------------------+ | ELT(2, 'Red', 'Green', 'Blue') | +--------------------------------+ | Green | +--------------------------------+
W tym przypadku użyliśmy 2
aby zwrócić drugi argument łańcucha.
Pływaki
Jeśli pierwszym argumentem jest FLOAT
, MariaDB zaokrągla go do najbliższej liczby całkowitej:
SELECT
ELT(2.4, 'Red', 'Green', 'Blue') AS "2.4",
ELT(2.5, 'Red', 'Green', 'Blue') AS "2.5";
Wynik:
+-------+------+ | 2.4 | 2.5 | +-------+------+ | Green | Blue | +-------+------+
Określanie pozycji poza zasięgiem
Określenie pozycji poza zakresem daje w wyniku null
zostanie zwrócony. Przykłady poniżej.
Pozycja zero
Podanie 0
jako pierwszy argument zwraca null
:
SELECT ELT(0, 'Red', 'Green', 'Blue');
Wynik:
+--------------------------------+ | ELT(0, 'Red', 'Green', 'Blue') | +--------------------------------+ | NULL | +--------------------------------+
Pozycja ujemna
Podanie wartości ujemnej jako pierwszego argumentu zwraca null
:
SELECT ELT(-2, 'Red', 'Green', 'Blue');
Wynik:
+---------------------------------+ | ELT(-2, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Gdy pozycja jest zbyt duża
Jeśli pierwszy argument jest liczbą większą niż łączna liczba argumentów ciągu, ELT()
zwraca wartość null:
SELECT ELT(20, 'Red', 'Green', 'Blue');
Wynik:
+---------------------------------+ | ELT(20, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Pozycje nieliczbowe
Jeśli pierwszy argument nie jest liczbą, ELT()
zwraca null
:
SELECT ELT('Two', 'Red', 'Green', 'Blue');
Wynik:
+------------------------------------+ | ELT('Two', 'Red', 'Green', 'Blue') | +------------------------------------+ | NULL | +------------------------------------+
Podawanie tylko jednego argumentu ciągu
Podanie pojedynczego argumentu ciągu jest poprawne, chociaż w tym przypadku pierwszym argumentem musiałby być 1
aby uniknąć uzyskania null
:
SELECT ELT(1, 'Red');
Wynik:
+---------------+ | ELT(1, 'Red') | +---------------+ | Red | +---------------+
Null Strings
Argumenty łańcuchowe mogą być null
bez wpływu na wynik innych:
SELECT ELT(3, 'Red', null, 'Blue');
Wynik:
+-----------------------------+ | ELT(3, 'Red', null, 'Blue') | +-----------------------------+ | Blue | +-----------------------------+
Chociaż określenie liczby odpowiadającej null
argument string oczywiście zwróci null
:
SELECT ELT(2, 'Red', null, 'Blue');
Wynik:
+-----------------------------+ | ELT(2, 'Red', null, 'Blue') | +-----------------------------+ | NULL | +-----------------------------+
Określanie pozycji zerowej
Podanie null
jako pierwszy argument daje wynik null
:
SELECT ELT(null, 'Red');
Wynik:
+------------------+ | ELT(null, 'Red') | +------------------+ | NULL | +------------------+
Pojedynczy argument
Podanie tylko jednego argumentu zwraca błąd:
SELECT ELT(2);
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'
Brakujący argument
Wywołanie ELT()
bez przekazania żadnych argumentów powoduje błąd:
SELECT ELT();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'