sql >> Databáze >  >> RDS >> Oracle

sql - jediný dotaz pro vrácení hodnot, které nejsou přítomny

Pokud používáte 10g nebo vyšší, můžete vytvořit funkci, která převede řetězec CSV na dynamickou tabulku. Podívejte se na kód pro řetězový tokenizér v tato další odpověď .

Použili byste to takto:

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

                  )
     )
/

Zde je o něco jednodušší implementace, která nevyžaduje žádnou další infrastrukturu:

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> 

Je to podobné jako Konstruktor hodnot tabulky , ale funguje pouze pro „tabulky“ s jedním sloupcem.



  1. MySQL strom seřazený podle rodiče a potomka

  2. Jak mohu získat Oracle, zjistit, jaké procedury běží?

  3. Jak uložit hodnotu, která se skládá z řetězce a má seznam, do databáze mysql

  4. Zkontrolovat, zda soubor existuje nebo ne na serveru SQL?