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)
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)
如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)
相关文章推荐
- Oracle数据库、实例、用户、表空间、角色基本概念和关系
- oracle数组 (转)
- nginx整合php+lua+oracle环境搭建
- oracle 10g 用dbms_xmlgen将数据表转成xml格式
- Oracle 关于WKT构造SDO_GEOMETRY的问题。
- 使用C#操作Oracle Spatial的SDO_GEOMETRY对像(读取和写入)
- arcgis 10.1 导入数据到oracle 发布地图服务
- Oracle 空间查询, 数据类型为 sdo_geometry
- 64位机 VS2012 Oracle ORA-06413 连接未打开
- Oracle_spatial的常见错误与注意事项
- shp转oracle spatial
- Oracle Spatial中SDO_Geometry说明
- Oracle_spatial的函数介绍
- Oracle_spatial的空间操作符介绍
- Oracle_spatial的空间索引
- Oracle 10g 在win10下的安装
- oracle 生成用户和表空间
- oracle中的exists 和not exists 用法详解
- Oracle数据库恢复误删除数据的方法
- Oracle数据库中 修改数据不用科学计数法表示