sql >> Database >  >> RDS >> SQLite

Verkrijg de positie van een teken in een tekenreeks in SQLite met Instr()

In SQLite kun je de instr() . gebruiken functie om de positie van een bepaald teken binnen een tekenreeks terug te geven.

De functie retourneert alleen de positie van het eerste voorkomen van het teken (indien aanwezig).

Als het teken niet wordt gevonden, retourneert het 0.

Als een van de argumenten NULL is, wordt NULL geretourneerd.

Hoe het werkt

De instr() functie accepteert twee argumenten. Het eerste argument is de string, en het tweede argument is het karakter dat u binnen die string wilt vinden.

Als de argumenten beide BLOB's zijn, retourneert het één meer dan het aantal bytes voorafgaand aan het eerste optreden van het tweede argument, of 0 als het nergens binnen het eerste argument voorkomt.

De syntaxis gaat als volgt:

inst(X,Y)
  • X is de tekenreeks
  • Y is het personage

Voorbeeld

Hier is een voorbeeld om te demonstreren.

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

Resultaat:

3

Hier wilde ik de locatie van de letter a .

In dit geval verschijnt de letter twee keer, en instr() geeft de locatie van de eerste keer dat het voorkomt.

Een databasevoorbeeld

In dit voorbeeld ga ik de volgende tabel gebruiken:

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     

Ik ga zoeken in de ProductName kolom voor een letter.

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

Resultaat:

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

Merk op dat de laatste rij de letter niet had en dus 0 is geretourneerd voor die rij.

NULL-waarden

Zoals gezegd, als een van de argumenten NULL is, wordt NULL geretourneerd.

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

Resultaat:

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


  1. Verschil tussen CTE en SubQuery?

  2. Mijn DBA is ziek - Tips voor databasefailover voor systeembeheerders

  3. Deelnemen aan ongelijksoortige gegevensbronnen in gelaagdheid

  4. SQLAlchemy geen wachtwoord opgegeven fout