SQLite
 sql >> Database >  >> RDS >> SQLite

Ottieni la posizione di un carattere in una stringa in SQLite con Instr()

In SQLite, puoi usare instr() funzione per restituire la posizione di un dato carattere all'interno di una stringa.

La funzione restituisce solo la posizione della prima occorrenza del carattere (se presente).

Se il carattere non viene trovato, restituisce 0.

Se uno degli argomenti è NULL, restituisce NULL.

Come funziona

Il instr() la funzione accetta due argomenti. Il primo argomento è la stringa e il secondo argomento è il carattere che desideri trovare all'interno di quella stringa.

Se gli argomenti sono entrambi BLOB, restituisce uno in più rispetto al numero di byte prima della prima occorrenza del secondo argomento, o 0 se non si verifica da nessuna parte all'interno del primo argomento.

La sintassi è questa:

inst(X,Y)
  • X è la stringa
  • Y è il personaggio

Esempio

Ecco un esempio da dimostrare.

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

Risultato:

3

Qui, volevo la posizione della lettera a .

In questo caso la lettera compare due volte e instr() restituisce la posizione della prima occorrenza.

Un esempio di database

In questo esempio userò la seguente tabella:

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     

Cercherò NomeProdotto colonna per una lettera.

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

Risultato:

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

Nota che l'ultima riga non conteneva la lettera e quindi 0 è stato restituito per quella riga.

Valori NULL

Come accennato, se uno qualsiasi degli argomenti è NULL, viene restituito NULL.

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

Risultato:

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