因为很少用到, 所以几乎忘记了这几个函数, 不过它们还是很有用的使用它们可以大大简化一些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)