1. IN、NOT IN、= ANY、<> ALL、SOME 与子查询的等价关系?
IN、NOT IN、= ANY、<> ALL、SOME 与子查询的等价关系是什么?
- IN 与 = ANY
- NOT IN 与 <> ALL
- SOME 与 ANY
等价关系:x IN (subquery) 等价于 x = ANY (subquery);x NOT IN (subquery) 等价于 x <> ALL (subquery);SOME 是 ANY 的同义词(等价)。IN 是"等于其中任意一个",NOT IN 是"不等于所有"。注意 NOT IN 与 <> ALL 在子查询含 NULL 时的陷阱:若子查询结果中有 NULL,NOT IN 结果可能为空。用 ANY/ALL 时需显式写比较操作符(= ANY、<> ALL、> ANY 等),而 IN 只表示等值。
IN 等价 = ANY,NOT IN 等价 <> ALL,SOME 等价 ANY。ANY 需配比较操作符,IN 只做等值。