Che tipo di campo è questo? L'operatore IN non può essere utilizzato con un singolo campo, ma è pensato per essere utilizzato nelle sottoquery o con elenchi predefiniti:
-- subquery
SELECT a FROM x WHERE x.b NOT IN (SELECT b FROM y);
-- predefined list
SELECT a FROM x WHERE x.b NOT IN (1, 2, 3, 6);
Se stai cercando una stringa, scegli l'operatore LIKE (ma sarà lento):
-- Finds all rows where a does not contain "text"
SELECT * FROM x WHERE x.a NOT LIKE '%text%';
Se lo limiti in modo che la stringa che stai cercando debba iniziare con la stringa data, può utilizzare indici (se c'è un indice su quel campo) ed essere ragionevolmente veloce:
-- Finds all rows where a does not start with "text"
SELECT * FROM x WHERE x.a NOT LIKE 'text%';