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語句嵌入到該操作語句中,這樣就形成了乙個子查詢。實際上,在關係型資料庫中,各表之間的資料關係非常密切,它們相互關聯,相互依存,這樣就可以根據資料之間的關係使用相...