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'