Oracle
 sql >> Database >  >> RDS >> Oracle

sql - query singola per restituire valori che non sono presenti

Se stai usando 10g o superiore, puoi creare una funzione che converte una stringa CSV in una tabella dinamica. Controlla il codice per un tokenizzatore di stringhe in questa altra risposta .

Lo useresti in questo modo:

select * from movies
where title NOT in (
         select * 
          from table (string_tokenizer
                      (
                          'Scream, Scary Movie,Exorcist,Dracula,Saw,Hide and Seek'
                        )

                  )
     )
/

Ecco un'implementazione leggermente più semplice che non richiede alcuna infrastruttura aggiuntiva:

SQL> select * from table(sys.dbms_debug_vc2coll('Scream',
'Scary Movie',
'Exorcist',
'Dracula',
'Saw',
'Hide and Seek'
 ))
/
  2    3    4    5    6    7    8  
COLUMN_VALUE
--------------------------------------------------------------------------------
Scream
Scary Movie
Exorcist
Dracula
Saw
Hide and Seek

6 rows selected.

SQL> 

È simile a il costruttore del valore della tabella , ma funziona solo per "tabelle" a colonna singola.