作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚在 ORACLE SQL 中偶然发现了一些我很好奇的东西(不确定其他中是否也有)。我在这里作为维基提问,因为很难尝试在谷歌中搜索符号......
我刚刚发现,当根据一组值检查一个值时,您可以这样做
WHERE x = ANY (a, b, c)
与平常不同
WHERE x IN (a, b, c)
所以我很好奇,这两种语法的推理是什么?一种是标准,另一种是一些奇怪的 Oracle 语法吗?或者它们都是标准的?出于性能原因是否会优先选择其中一种,或者?
只是好奇有人能告诉我有关“= ANY”语法的信息。
最佳答案
ANY
(或其同义词SOME
)是EXISTS
的语法糖,具有简单的关联:
SELECT *
FROM mytable
WHERE x <= ANY
(
SELECT y
FROM othertable
)
等同于:
SELECT *
FROM mytable m
WHERE EXISTS
(
SELECT NULL
FROM othertable o
WHERE m.x <= o.y
)
对于不可为空字段的相等条件,它变得类似于 IN
。
所有主要数据库,包括 SQL Server
、MySQL
和 PostgreSQL
都支持此关键字。
关于sql - 甲骨文: '= ANY()' 与 'IN ()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2298550/
我是一名优秀的程序员,十分优秀!