sql - 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?我倾向于认为是,但看不清楚。
解决方案
你是对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
。
推荐阅读
- terraform - Terraform中如何控制Beanstalk制作的ELB命名
- ssl - 来自 collectd 的 Write_http 插件的 curl 不起作用
- javascript - DOM createElement() 动态地与点击事件到 div 特定的 url 元素
- java - 本地构建时自动重建依赖项目
- java - 范围内的随机数生成器,然后打印序列的长度
- powershell - PowerShell Add-Member ScriptMethod - 无法设置变量值
- django - 如何通过多字段中的条目数对查询集结果进行排序?
- linux - 在链接路径中“没有这样的文件或目录”
- c# - QueryString 正在获取第一个子字符串并丢弃剩余的帖子空间
- autohotkey - 在文本字段中键入时暂停热键