Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle:'=ANY()' vs. 'IN()'


ANY (ou seu sinônimo SOME ) é um açúcar de sintaxe para EXISTS com uma simples correlação:
SELECT  *
FROM    mytable
WHERE   x <= ANY
        (
        SELECT  y
        FROM    othertable
        )

é o mesmo que:
SELECT  *
FROM    mytable m
WHERE   EXISTS
        (
        SELECT  NULL
        FROM    othertable o
        WHERE   m.x <= o.y
        )

Com a condição de igualdade em um campo não anulável, torna-se semelhante a IN .

Todos os principais bancos de dados, incluindo SQL Server , MySQL e PostgreSQL , suporte esta palavra-chave.