sql >> Databasteknik >  >> RDS >> Oracle

sql - enkel fråga för att returnera värden som inte finns

Om du använder 10g eller högre kan du bygga en funktion som konverterar en CSV-sträng till en dynamisk tabell. Kolla in koden för en strängtokenizer i det här andra svaret .

Du skulle använda det så här:

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

                  )
     )
/

Här är en något enklare implementering som inte kräver någon extra 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> 

Detta liknar Table Value Constructor , men det fungerar bara för "tabeller" i en kolumn.



  1. Hitta datumintervallsöverlappningar inom samma tabell, för specifika användare MySQL

  2. Varför står mina Airflow-uppgifter i kö men körs inte?

  3. Hur komprimerar jag den här Oracle-resultatuppsättningen till värden enligt radprioritet, och ignorerar nollor?

  4. Sparar kryssruta (booleska) värden i mysql databas med php