Oracle語法中子查詢的單行子查詢

子查詢(內查詢)在主查詢之前一次執行完成,子查詢的結果被主查詢(外查詢)使用,子查詢要包含在括號內,將子查詢放在比較條件的右側,單行操作符對應單行子查詢。

/查詢所有成績表裏的最高的同學/
select Sno 學號, a.Cno 課程號, b.Cname 課程名稱, a.Degree 分數
from Score a
join Course b
on a.cno = b.cno
where a.Degree = (select max(Degree) from Score)

上面是在子查詢使用了組函數,返回成績表裏所最高成績的學生,使用了單行比較符“=”,單行子查詢裏的查詢語句只返回一行數據,下圖是結果圖。
在這裏插入圖片描述

/查詢所有課程表裏與3-105的課程號相同的同學,成績要高於學號爲105的同學/
select Sno 學號, Cno 課程號, Degree 分數
from Score
where cno = (select cno from Course where cno = ‘3-105’)
and sno > (select sno from Score where sno = 105)

上面是執行單行子查詢的例子,返回所有課程表裏與3-105的課程號相同的同學和成績要高於學號爲105的同學的學生的學號、課程號和分數。第一個子查詢使用了單行比較符“=”,第二個使用了單行比較符“>”,下面是結果圖。
在這裏插入圖片描述
總結:使用單行子查詢對應的是使用單行比較符,只能返回一行,單行子查詢不能返回多行,在查詢時基於未知的值時,應使用子查詢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章