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

Jak Substr() działa w SQLite

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 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.

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          

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. onCreate() funkcji RoomDatabase.Callback() nie został wywołany po pomyślnym wywołaniu funkcji .build()

  2. Jak ustawić każdy element pobrany z bazy danych SQLite we własnym widoku tekstowym?

  3. Utwórz kopię zapasową bazy danych SQLite

  4. Usunąć wiele wierszy przy użyciu identyfikatorów?

  5. Samouczek SQLite:wszystko, co musisz wiedzieć