sql >> Base de Datos >  >> RDS >> Oracle

sql:consulta única para devolver valores que no están presentes

Si está utilizando 10g o superior, puede crear una función que convierta una cadena CSV en una tabla dinámica. Consulte el código para un tokenizador de cadenas en esta otra respuesta .

Lo usarías así:

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

                  )
     )
/

Aquí hay una implementación un poco más simple que no requiere ninguna infraestructura adicional:

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> 

Esto es similar a el constructor de valores de tabla , pero solo funciona para "tablas" de una sola columna.