SQLite substr()
funkcja umożliwia zwrócenie podciągu z ciągu na podstawie podanej lokalizacji początkowej w ciągu.
Wymaga dwóch argumentów i akceptuje trzeci opcjonalny argument.
Aktualizacja :Od wersji SQLite 3.34.0 (wydanej 1 grudnia 2020 r.), substr()
można teraz nazwać substring()
dla kompatybilności z SQL Server.
Składnia
Możesz wywołać substr()
w dowolny z następujących sposobów:
substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
X
to pełny ciąg zawierający podciąg, który chcesz zwrócić.Y
jest lokalizacją pierwszego znaku podciągu, który chcesz zwrócić z tego ciągu.Z
to liczba znaków, które chcesz zwrócić. W przypadku pominięcia zwracane są wszystkie kolejne znaki (zaczynając odY
).
Jeśli X
jest łańcuchem, a indeksy znaków odnoszą się do rzeczywistych znaków UTF-8. Jeśli X
jest BLOBem, indeksy odnoszą się do bajtów.
Zauważ, że substring()
składnia jest dostępna tylko w SQLite 3.34.0.
Przykład z 3 argumentami
Oto podstawowy przykład pokazujący, jak używać substr()
z trzema argumentami.
SELECT substr('Industrial', 3, 4);
Wynik:
dust
Przykład z 2 argumentami
Jeśli pominę trzeci argument z poprzedniego przykładu, otrzymam następujący wynik.
SELECT substr('Industrial', 3);
Wynik:
dustrial
Ujemny punkt początkowy
Możesz podać wartość ujemną dla drugiego argumentu. Gdy to zrobisz, pierwszy znak podłańcucha zostanie znaleziony, licząc od prawej, a nie od lewej.
SELECT substr('Industrial', -3);
Wynik:
ial
Oto kolejny przykład, tym razem określam długość podciągu.
SELECT substr('Industrial', -8, 4);
Wynik:
dust
Tak więc wartości ujemne mają taki sam efekt, jak przy użyciu substring()
funkcja w MySQL. MySQL ma również funkcję substr()
funkcja, która jest synonimem jej substring()
funkcjonować.
Jednak różni się to od sposobu, w jaki SQL Server traktuje wartości ujemne. Gdy przekazujesz wartość ujemną do substring()
w SQL Server po prostu zacznie liczyć w wyimaginowanym punkcie przed rozpoczęciem ciągu.
Ujemna długość podciągu
W poprzednim przykładzie użyto ujemnego punktu początkowego. W tym przykładzie użyję długości ujemnej. Rozumiem przez to, że zamierzam podać ujemną wartość trzeciego argumentu.
SELECT substr('Industrial', -3, -4);
Wynik:
ustr
Zatem podanie ujemnej wartości trzeciego argumentu powoduje zwrócenie znaków poprzedzających punkt początkowy.
Dotyczy to również sytuacji, gdy drugi argument jest wartością dodatnią.
SELECT substr('Industrial', 7, -4);
Wynik:
dust
Przykład bazy danych
Oto przykład, który używa substr()
w zapytaniu do bazy danych w przykładowej bazie danych Chinook.
SELECT substr(Title, 1, 20)
FROM Album
LIMIT 10;
Wynik:
substr(Title, 1, 20) -------------------- For Those About To R Balls to the Wall Restless and Wild Let There Be Rock Big Ones Jagged Little Pill Facelift Warner 25 Anos Plays Metallica By F Audioslave