2010-07-06 15 views
7

Qual è il modo più diretto per definire l'indice di una sottostringa in una colonna varchar? charindex non esiste nella versione stock di SQLite3, il che è ancora un po 'sorprendente per me.Indice della sottostringa in SQLite3?

In particolare, ho una colonna con valori come 010000, 011000, 010110, ecc voglio trovare l'indice della prima occorrenza di 11. Per gli esempi che ho dato, mi sarei aspettato qualcosa come NULL (o -1), 1 e 3.

Ho un'idea compromessa che utilizza length e ltrim, ma sembra molto lavoro per qualcosa che devo fare più volte.

risposta

2

Purtroppo, penso che tu abbia trovato l'unica risposta che attualmente funziona. SQLite non ha una funzione equivalente charindex. È un fare il vostro proprio con la lunghezza e tagliare, ma niente è costruito in :(

+1

Questo è così strano ... Anche qualcosa che è solo zucchero sintattico (ma incorporato) andrebbe bene. Mi chiedo quale sia la logica di * not * includendo qualcosa come 'charindex' è ... –

+2

^per mantenerlo lite;) – straya

5

Questo è ora possibile tramite la funzione built instr.

sqlite> select instr(010000,11); 
0 
sqlite> select instr(011000,11); 
1 
sqlite> select instr(010110,11); 
3 
+0

sqlite 3.7.6 e di seguito non include questa funzione :( –

Problemi correlati