sql >> Database >  >> RDS >> Oracle

sql - enkele query om waarden te retourneren die niet aanwezig zijn

Als u 10g of hoger gebruikt, kunt u een functie bouwen die een CSV-reeks omzet in een dynamische tabel. Bekijk de code voor een string-tokenizer in deze andere reactie .

Je zou het als volgt gebruiken:

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

                  )
     )
/

Hier is een iets eenvoudigere implementatie die geen extra infrastructuur vereist:

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> 

Dit is vergelijkbaar met de tabelwaarde-constructor , maar het werkt alleen voor "tabellen" met één kolom.



  1. NHibernate - kon geen (orakel) dialect vinden in configuratie

  2. SQL - INDIEN BESTAAT UPDATE ANDERS INSERT INTO

  3. Hoe verwijder ik nieuwe regeltekens uit gegevensrijen in mysql?

  4. PostgreSQL-vergrendelingsmodus