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) Xto pełny ciąg zawierający podciąg, który chcesz zwrócić.Yjest lokalizacją pierwszego znaku podciągu, który chcesz zwrócić z tego ciągu.Zto 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