Oracle
 sql >> база данни >  >> RDS >> Oracle

sql - единична заявка за връщане на стойности, които не присъстват

Ако използвате 10g или по-висока, можете да създадете функция, която преобразува CSV низ в динамична таблица. Вижте кода за токенизатор на низове в този друг отговор .

Бихте го използвали така:

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

                  )
     )
/

Ето една малко по-проста реализация, която не изисква допълнителна инфраструктура:

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> 

Това е подобно на Конструкторът на стойност на таблица , но работи само за "таблици" с една колона.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изпълним функция в Oracle с параметри

  2. Разлики в Oracle между NVL и Coalesce

  3. предоставя SELECT достъп до v$session на други потребители

  4. Стартирайте exe от DBMS_SCHEDULER

  5. Създаване на прост потребителски интерфейс за достъп до база данни на Oracle