Oracle
 sql >> Baza danych >  >> RDS >> Oracle

sql - pojedyncze zapytanie zwracające wartości, których nie ma

Jeśli używasz 10g lub więcej, możesz zbudować funkcję, która konwertuje ciąg CSV w dynamiczną tabelę. Sprawdź kod tokenizera ciągów w ta druga odpowiedź .

Używałbyś go w ten sposób:

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

                  )
     )
/

Oto nieco prostsza implementacja, która nie wymaga dodatkowej infrastruktury:

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> 

Jest to podobne do Konstruktor wartości tabeli , ale działa tylko dla jednokolumnowych "tabel".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować bazę danych Oracle w systemie Windows

  2. Przygotuj dane testowe na Oracle za pomocą kolumny blob

  3. Grupuj według identyfikatora z wyjątkiem rekordów NULL

  4. walidacja z błędem ora-02299

  5. Zapytanie krzyżowe Oracle SQL