Oracle
 sql >> Datenbank >  >> RDS >> Oracle

sql - einzelne Abfrage zur Rückgabe von Werten, die nicht vorhanden sind

Wenn Sie 10g oder höher verwenden, können Sie eine Funktion erstellen, die eine CSV-Zeichenfolge in eine dynamische Tabelle umwandelt. Sehen Sie sich den Code für einen String-Tokenizer in diese andere Antwort .

Sie würden es wie folgt verwenden:

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

                  )
     )
/

Hier ist eine etwas einfachere Implementierung, die keine zusätzliche Infrastruktur erfordert:

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> 

Dies ähnelt der Tabellenwert-Konstruktor , aber es funktioniert nur für einspaltige "Tabellen".