W SQLite, substring() jest aliasem dla substr() .
Zwraca podciąg z ciągu na podstawie podanej lokalizacji początkowej w ciągu. Wymagane są dwa argumenty, a trzeci opcjonalny argument jest akceptowany.
substring() nazewnictwo zostało wprowadzone w wersji SQLite 3.34.0, która została wydana 1 grudnia 2020 r. Powód, dla którego substring() składnia została wprowadzona w celu zapewnienia zgodności z SQL Server.
Składnia
Możesz więc teraz wywołać funkcję 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.
Jak wspomniano, 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ć substring() z trzema argumentami.
SELECT substring('Dolemite', 3, 4); Wynik:
lemi
Przykład z 2 argumentami
Jeśli pominę trzeci argument z poprzedniego przykładu, otrzymam następujący wynik.
SELECT substring('Dolemite', 3); Wynik:
lemite
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 substring('Dolemite', -3); Wynik:
ite
Oto kolejny przykład, tym razem określam długość podciągu.
SELECT substring('Dolemite', -7, 4); Wynik:
olem
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 substring('Dolemite', -1, -4); Wynik:
emit
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 substring('Dolemite', 6, -4); Wynik:
olem
Przykład bazy danych
Oto przykład, który używa substring() w zapytaniu do bazy danych w przykładowej bazie danych Chinook.
SELECT
substring(Name, 1, 10),
Name
FROM Artist
ORDER BY Name DESC
LIMIT 10; Wynik:
substring(Name, 1, 10) Name ---------------------- --------------------------------- Zeca Pagod Zeca Pagodinho Youssou N' Youssou N'Dour Yo-Yo Ma Yo-Yo Ma Yehudi Men Yehudi Menuhin Xis Xis Wilhelm Ke Wilhelm Kempff Whitesnake Whitesnake Vinícius E Vinícius E Qurteto Em Cy Vinícius E Vinícius E Odette Lara Vinícius D Vinícius De Moraes & Baden Powell
W tym przypadku zwróciłem pierwsze dziesięć znaków z Name kolumna. Zwróciłem również pełną zawartość Name kolumny w celu porównania wyników.