Quando scrivo un'istruzione sql, è mia abitudine provarla col DBBrowser, alfine di evitare sorprese durante l'esecuzione del programma che la conterrà.
E poichè ora mi trovo nella necessità di dover filtrare i record di una tabella di DataBase (DB) SQLite per estrarre pochi record, direi principali rispetto ad famiglia di diversi record, vorrei affidare l'operazione di filtraggio all'istruzione sql, piuttosto che farla io per ciascun record letto. Ho perciò scritto una SELELCT che ho replicato in ambiente DBBrowser così
SELECT NumVoce, NomeVoce FROM piancont WHERE NumVoce >= 101001000 AND NumVoce <= 101297000
AND RIGHT(NumVoce, 3) = 000
AND DtUltimUso >= 20200101 OR DtUltimUso = 0 ORDER BY NumVoce
DBBRowser ha segnalato un errore di sintassi legato al carattere "(" che precede la parola RIGHT.
Sapete come potere entrare in possesso della terminologia sintattica dei comandi da eseguire direttamente in DBBRowser?
SELECT NumVoce, NomeVoce FROM piancont WHERE NumVoce >= 101001000 AND NumVoce <= 101297000
AND RIGHT(NumVoce, 3) = 000
AND DtUltimUso >= 20200101 OR DtUltimUso = 0 ORDER BY NumVoce
RIGHT restituisce una stringa ma tu confronti il risultato con un numero
prova con
SELECT NumVoce, NomeVoce FROM piancont WHERE NumVoce >= 101001000 AND NumVoce <= 101297000
AND RIGHT(NumVoce, 3) = '000'
AND DtUltimUso >= 20200101 OR DtUltimUso = 0 ORDER BY NumVoce