首页 > 解决方案 > IN 语法糖是来自 = ANY 吗?

问题描述

1) 据我了解,比较 = ANY 看起来与 IN 非常相似。是这样吗?例如:

SELECT * FROM HOUSES 
WHERE TYPE = ANY (SELECT TYPE FROM TYPES WHERE CAT_ID = 'PUBLIC')

总是等于说吗?

SELECT * FROM HOUSES 
WHERE TYPE IN (SELECT TYPE FROM TYPES WHERE CAT_ID = 'PUBLIC')

2) 不在呢?是否等于 <> ALL?我倾向于认为是,但看不清楚。

标签: sql

解决方案


你是对IN的,相当于= ANY. 在这个主题上,SQL:2016 标准 (ISO 9075-2:2016) 说:

8.4 <在谓词中>

[..]

语法规则

[..]

4) 表达式

RVC NOT IN IPV

相当于

NOT ( RVC IN IPV )

5) 表达式

RVC IN IPV

相当于

RVC = ANY IPV

的等价IN点在第 5 点,第 4 点在某种程度上回答了您关于 的问题NOT IN


推荐阅读