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

sql - enkelt forespørgsel for at returnere værdier, der ikke er til stede

Hvis du bruger 10g eller højere, kan du bygge en funktion, som konverterer en CSV-streng til en dynamisk tabel. Tjek koden til en strengtokenizer i dette andet svar .

Du ville bruge det sådan her:

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

                  )
     )
/

Her er en lidt enklere implementering, som ikke kræver yderligere infrastruktur:

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> 

Dette svarer til tabelværdikonstruktøren , men det virker kun for "tabeller" med en enkelt kolonne.



  1. Sådan indstilles manuelt en Oracle Connection String i en DbContext

  2. Hentning af data fra tabellen ved hjælp af PL/SQL

  3. MySQL vælg specifik post fra en tabel, som ikke er i en anden tabel

  4. MySQL:Tilføj dynamisk kolonner til forespørgselsresultater