Ciao ho una tabella con un campo stringa contenente dei numeri separati da una virgola
campo x
1,2
5,6
13,85
devo trovare il numero giusto ad esempio se gli dico di trovare 1 deve restituirmi solo la riga 1,2 quindi la prima.
Facendo come ho fatto io mi restituisce sia la prima riga 1,2 e la terza riga 13,85 perchè trova il 13 che al suo interno ha il numero 1
Si l'avevo fatto per un'altra app però volevo farlo con sql.
Forse ho un'idea, con instr di sql trovo la virgola poi con substring sempre di sql trovo i due numeri prima e dopo la virgola il tutto dentro la select impostando un nuovo campo con As ed eseguendo un where nome nuovo campo
Dovrebbe funzionare
select Id,CreationDateTime,Code,Status,Season,WeekGroup,substr(TablesId,1,instr(TablesId,',')-1) as T1,substr(TablesId,instr(TablesId,',')+1) as T2,Notes from Tables
non può funzionare; se il camporicerca contiene "1,5,7,15,21,24" e il valore da ricercare è "5" la query non restituisce niente;
prova con questa:
B4X:
SELECT * FROM ${TuaTabella}
WHERE ${CampoRicerca} LIKE '%,${Valore},%'
OR ${CampoRicerca} LIKE '${Valore},%'
OR ${CampoRicerca} LIKE '%,${Valore}'
OR ${CampoRicerca} = '${Valore}'
non può funzionare; se il camporicerca contiene "1,5,7,15,21,24" e il valore da ricercare è "5" la query non restituisce niente;
prova con questa:
B4X:
SELECT * FROM ${TuaTabella}
WHERE ${CampoRicerca} LIKE '%,${Valore},%'
OR ${CampoRicerca} LIKE '${Valore},%'
OR ${CampoRicerca} LIKE '%,${Valore}'
OR ${CampoRicerca} = '${Valore}'
select Id,CreationDateTime,Code,Status,
iif(substr(TablesId,1,instr(TablesId,',')-1) = "",substr(TablesId,instr(TablesId,',')+1),substr(TablesId,1,instr(TablesId,',')-1)) as T1,
iif(substr(TablesId,1,instr(TablesId,',')-1) = "",'',substr(TablesId,instr(TablesId,',')+1)) as T2,
Notes from Tables