oracle 子查詢的幾個種類

2022-09-18 11:33:28 字數 1686 閱讀 2347

1.where型子查詢:

select cat_id,good_id,good_name from goods where good_id in (selct

max(good_id)

from goods

group

by cat_id);

2. from 型子查詢:

select * from (

select cat_id,good_id,good_name

from goods

order

by cat_id

asc, good_id

desc) as temp group by cat_id;

3.from和where型綜合練習: 

查出掛科2門及以上同學的平均分: 

思路講解:

select  c.name  ,**g(c.score)  from   cenjibiao c,(select   name ,count(*)  from cejibiao   where  score < 60  group by  name  h**ing count(*)>=2) t  where  c.name = t.name    group by  c.name ;       ;                 

4.in子查詢:查詢年齡為20歲的員工部門

select * from department where did in(select did from employee where age=20);

5.exists子查詢:查詢是否存在年齡大於21歲的員工

select * from department where exists (select did from employee where age>21);

6. all子查詢:查詢滿足條件的部門

select * from department where did> all(select did from employee );

7比較運算子子查詢:查詢趙四是哪個部門的

select * from department where did= all(select did from employee where name='趙四'); 

總結:

where型子查詢:指把內部查詢的結果作為外層查詢的比較條件。

from型子查詢:把內層的查詢結果當成臨時表,供外層sql再次查詢。

in子查詢:內層查詢語句僅返回乙個資料列,這個資料列的值將供外層查詢語句進行比較。

exists子查詢:把外層的查詢結果,拿到內層,看內層是否成立,簡單來說後面的返回true,外層(也就是前面的語句)才會執行,否則不執行。

any子查詢:只要滿足內層子查詢中的任意乙個比較條件,就返回乙個結果作為外層查詢條件。

all子查詢:內層子查詢返回的結果需同時滿足所有內層查詢條件。

比較運算子子查詢:子查詢中可以使用的比較運算子如 「>」 「

來自:

Oracle的查詢 子查詢

子查詢 子查詢返回乙個值 查詢出工資和scott一樣的員工資訊 select from emp where sal in select sal from emp where ename scott 子查詢返回乙個集合 查詢出工資和10號部門任意員工一樣的員工資訊 select from emp wh...

Oracle的子查詢

oracle的子查詢分為兩種 一種是相關子查詢,一種是非相關子查詢。主要區別就是相關子查詢用到了外查詢結果的字段。一般來說,相關子查詢不能單獨執行,非相關子查詢可以單獨執行。掃瞄外查詢的第一條記錄 掃瞄子查詢,並將第一條記錄的對應值傳給子查詢,由此計算出子查詢的結果 根據子查詢的結果,返回外查詢的結...

Oracle子查詢的用法

在執行資料庫操作 包括查詢 新增 修改 刪除等操作 的過程中,如果某個操作需要依賴另乙個select語句的查詢結果,那麼就可以把select語句嵌入到該操作語句中,這樣就形成了乙個子查詢。實際上,在關係型資料庫中,各表之間的資料關係非常密切,它們相互關聯,相互依存,這樣就可以根據資料之間的關係使用相...