程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle之 any、some、all 解析

Oracle之 any、some、all 解析

編輯:Oracle數據庫基礎
 

ANY和SOME在意思上是相同的,
可以相互替代.
舉幾個例子來說明ALL和ANY的用法
1. SELECT * FROM TABLEA WHERE FLD > ALL(SELECT FLD FROM TABLEA)
這相當於
SELECT * FROM TABLEA WHERE FLD > (SELECT MAX(FLD) FROM TABLEA)

 

2. SELECT * FROM TABLEA WHERE FLD > ANY(SELECT FLD FROM TABLEA)
這相當於
SELECT * FROM TABLEA WHERE FLD > (SELECT MIN(FLD) FROM TABLEA)

 

3. SELECT * FROM TABLEA WHERE FLD = ANY(SELECT FLD FROM TABLEA)
這相當於
SELECT * FROM TABLEA WHERE FLD IN (SELECT FLD FROM TABLEA)

 

最後, 關於HAVING它是用於合計計算的運算符, 它和WHERE有著不同的含義
當使用GROUP時HAVING是對各組中的記錄進行比較的意思,
換句話說它是選擇一組數據的條件
而WHERE則和分組無關, 它是選擇一行數據的條件
比如,
SELECT NAME, AVG(PRICE) FROM STORE GROUP BY NAME HAVING AVG(PRICE) > 10
這裡的HAVING是WHERE無法替代的
至於效率, WHERE是在生成結果集之前就完成的處理,
而HAVING則要等到結果集做成後在循環執行的處理, 自然效率要低一些, 因此在只需要對行進行操作的時候, 不要使用HAVING。

 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved