SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Holen Sie sich die Position eines Zeichens in einem String in SQLite mit Instr()

In SQLite können Sie das instr() verwenden Funktion, um die Position eines bestimmten Zeichens innerhalb einer Zeichenfolge zurückzugeben.

Die Funktion gibt nur die Position des ersten Vorkommens des Zeichens zurück (falls vorhanden).

Wenn das Zeichen nicht gefunden wird, wird 0 zurückgegeben.

Wenn eines der Argumente NULL ist, wird NULL zurückgegeben.

Wie es funktioniert

Die instr() Die Funktion akzeptiert zwei Argumente. Das erste Argument ist die Zeichenkette, und das zweite Argument ist das Zeichen, das Sie in dieser Zeichenkette finden möchten.

Wenn die Argumente beide BLOBs sind, wird eins mehr als die Anzahl Bytes vor dem ersten Auftreten des zweiten Arguments zurückgegeben, oder 0, wenn es nirgendwo innerhalb des ersten Arguments vorkommt.

Die Syntax lautet wie folgt:

inst(X,Y)
  • X ist die Zeichenfolge
  • Y ist das Zeichen

Beispiel

Hier ist ein Beispiel zur Veranschaulichung.

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

Ergebnis:

3

Hier wollte ich die Position des Buchstabens a .

In diesem Fall erscheint der Buchstabe zweimal und instr() gibt den Ort des ersten Vorkommens zurück.

Ein Datenbankbeispiel

In diesem Beispiel verwende ich die folgende Tabelle:

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     

Ich suche nach ProductName Spalte für einen Buchstaben.

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

Ergebnis:

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

Beachten Sie, dass die letzte Zeile nicht den Buchstaben und damit 0 hatte wurde für diese Zeile zurückgegeben.

NULL-Werte

Wie bereits erwähnt, wird NULL zurückgegeben, wenn eines der Argumente NULL ist.

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

Ergebnis:

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