SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Wyjaśnienie SQLite SUBSTRING()

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)
  • 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 od Y ).

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aktualizacja wstępnie wypełnionej bazy danych

  2. Pierwsze kroki z wyszukiwaniem pełnotekstowym SQLite

  3. Zapytanie tylko o pierwsze dane z tabeli

  4. Utwórz kopię zapasową/przywróć bazę danych SQLlite do folderu aplikacji Dysk Google

  5. Utwórz tabelę w SQLite