No es 100% lo que estaba buscando, pero la clase de una forma de adentro hacia afuera de hacerlo:
SQL> CREATE TABLE mytable (id NUMBER, status VARCHAR2(50));
Table created.
SQL> INSERT INTO mytable VALUES (1,'Finished except pouring water on witch');
1 row created.
SQL> INSERT INTO mytable VALUES (2,'Finished except clicking ruby-slipper heels');
1 row created.
SQL> INSERT INTO mytable VALUES (3,'You shall (not?) pass');
1 row created.
SQL> INSERT INTO mytable VALUES (4,'Done');
1 row created.
SQL> INSERT INTO mytable VALUES (5,'Done with it.');
1 row created.
SQL> INSERT INTO mytable VALUES (6,'In Progress');
1 row created.
SQL> INSERT INTO mytable VALUES (7,'In progress, OK?');
1 row created.
SQL> INSERT INTO mytable VALUES (8,'In Progress Check Back In Three Days'' Time');
1 row created.
SQL> SELECT *
2 FROM mytable m
3 WHERE +1 NOT IN (INSTR(m.status,'Done')
4 , INSTR(m.status,'Finished except')
5 , INSTR(m.status,'In Progress'));
ID STATUS
---------- --------------------------------------------------
3 You shall (not?) pass
7 In progress, OK?
SQL>
Estaba tratando de evitar la ruta larga, pero parece que podría ser la única forma – Matt
@Matt Si esto solo se trata de escribir texto SQL ligeramente más corto, simplemente use la sintaxis propuesta en esta respuesta y aprenda en vivo con ella . Si esto se trata de tener LIKE filas de otra tabla (por lo que no puedes construir la lista de valores de antemano), este es un problema completamente diferente, que requeriría algo como: 'UNIR OTROS_TABLE EN NO (YOUR_TABLE.FIELD LIKE OTHER_TABLE .FIELD) '... –
Terminé usando esto por simplicidad, pero las respuestas de expresiones regulares fueron útiles como una oportunidad para aprender un poco de Oracle. Gracias a todos – Matt