Oracle
 sql >> Datenbank >  >> RDS >> Oracle

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

ANY (oder sein Synonym SOME ) ist ein Syntaxzucker für EXISTS mit einer einfachen Korrelation:

SELECT  *
FROM    mytable
WHERE   x <= ANY
        (
        SELECT  y
        FROM    othertable
        )

ist dasselbe wie:

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

Mit der Gleichheitsbedingung für ein Nicht-Nullable-Feld wird es ähnlich zu IN .

Alle wichtigen Datenbanken, einschließlich SQL Server , MySQL und PostgreSQL , unterstützen Sie dieses Schlüsselwort.