因爲很少用到, 所以幾乎忘記了這幾個函數, 不過它們還是很有用的使用它們可以大大簡化一些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)