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

Uzyskaj pozycję znaku w ciągu w SQLite za pomocą Instr()

W SQLite możesz użyć instr() funkcja zwracająca pozycję danego znaku w ciągu.

Funkcja zwraca tylko pozycję pierwszego wystąpienia znaku (jeśli istnieje).

Jeśli znak nie zostanie znaleziony, zwraca 0.

Jeśli którykolwiek z argumentów ma wartość NULL, zwraca NULL.

Jak to działa

instr() funkcja przyjmuje dwa argumenty. Pierwszym argumentem jest łańcuch, a drugim znakiem, który chcesz znaleźć w tym łańcuchu.

Jeśli argumenty są obydwoma blokami BLOB, zwraca o jeden bajt więcej niż liczba bajtów przed pierwszym wystąpieniem drugiego argumentu lub 0, jeśli nie występuje nigdzie w pierwszym argumencie.

Składnia wygląda tak:

inst(X,Y)
  • X jest ciągiem
  • Y jest postacią

Przykład

Oto przykład do zademonstrowania.

SELECT instr('Black cat', 'a');

Wynik:

3

Tutaj chciałem zlokalizować literę a .

W tym przypadku litera pojawia się dwukrotnie, a instr() zwraca lokalizację pierwszego wystąpienia.

Przykład bazy danych

W tym przykładzie użyję poniższej tabeli:

ProductId   ProductName    Price     
----------  -------------  ----------
1           Widget Holder  139.5     
2           Blue Widget    10.0      
3           Red Widget     10.0      
4           Green Widget   10.0      
5           Widget Stick   89.75     
6           Foo Cap        11.99     

Będę przeszukiwać ProductName kolumna na list.

SELECT 
  ProductName,
  instr(ProductName, 'd') 
FROM Products;

Wynik:

ProductName    instr(ProductName, 'd')
-------------  -----------------------
Widget Holder  3                      
Blue Widget    8                      
Red Widget     3                      
Green Widget   9                      
Widget Stick   3                      
Foo Cap        0                               

Zwróć uwagę, że ostatni wiersz nie zawierał litery, więc 0 został zwrócony dla tego wiersza.

Wartości NULL

Jak wspomniano, jeśli którykolwiek z argumentów ma wartość NULL, zwracana jest wartość NULL.

SELECT 
  instr(NULL, 'a'),
  instr('Black cat', NULL);

Wynik:

instr(NULL, 'a')  instr('Black cat', NULL)
----------------  ------------------------
                                          


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobieranie danych z bazy danych sql we flutter datewise?

  2. sqliteLog 14:nie można otworzyć pliku w wierszu

  3. Wyjątek SQLite podczas próby usunięcia wiersza

  4. Czy możliwa jest migracja z Realm do Sqlite?

  5. Dane SQLite do RecyclerView