您的位置:首页 > 数据库 > Oracle

oracle之 any、all 解析

2016-03-08 10:16 417 查看
因为很少用到, 所以几乎忘记了这几个函数, 不过它们还是很有用的使用它们可以大大简化一些SQL文的语法, 至于效率问题,

如CCW所说它们和EXISTS, IN 之类没有什么差别, 而且要具体问题具体分析

其中ANY和SOME在意思上是相同的,

可以相互替代.

举几个例子来说明ALL和ANY的用法

ALL的用法

1.1

SELECT * FROM TABLEA WHERE FLD > ALL(SELECT FLD FROM TABLEA)

这相当于

SELECT * FROM TABLEA WHERE FLD > (SELECT MAX(FLD) FROM TABLEA)
1.2

SELECT * FROM TABLEA WHERE FLD<
ALL(SELECT FLD FROM TABLEA)

这相当于

SELECT * FROM TABLEA WHERE FLD > (SELECTMIN(FLD)
FROM TABLEA)

1.3

SELECT * FROM TABLEA WHERE FLD
= ALL(SELECT
FLD FROM TABLEA)

=all 当all子句数据集是一个数据的,作用跟=差不多。
当all子句数据集是多条数据的,返回结果集为空。


ANY的用法

2.1

SELECT * FROM TABLEA WHERE FLD>
ANY(SELECT FLD FROM TABLEA)

这相当于

SELECT * FROM TABLEA WHERE FLD > (SELECT MIN(FLD) FROM TABLEA)

2.2

SELECT * FROM TABLEA WHERE FLD<
ANY(SELECT FLD FROM TABLEA)

这相当于

SELECT * FROM TABLEA WHERE FLD > (SELECT MAX(FLD) FROM TABLEA)

2.3

SELECT * FROM TABLEA WHERE FLD = ANY(SELECT FLD FROM TABLEA)

这相当于

SELECT * FROM TABLEA WHERE FLD IN (SELECT FLD FROM TABLEA)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: