SELECT s.SNAME FROM SC sc,S s,C c WHERE s.S#=sc.S# and sc.C# = c.C# and sc.TEACHER="資料庫" order by GRADE desc limit 2,1;
用這條sql就可以搞定
㈡ 用sql查詢第三名到第五名的同學,怎麼用呢
我們先分析一下,假設有一個表叫grade,裡面有一列叫A,A中記錄的是很多學生的成績,那麼我們可以採取這種辦法求出第三名學生的成績(嵌套三次查詢語句):
select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade))
同樣,將這個句嵌套五次就可以取出第五名學生成績:
select min(A) AS A5 from grade where A>(select min(A) AS A4 from grade where A>(select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade))))
最後一步,寫一個語句,取上次者之間的值,最終結果是:
select A from grade where A>=(...) and A<=(.....)
第一個括弧用步驟一的語句,第二個括弧用步驟二的語句,結果是:
select A from grade where A>=(select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade))) and A<=(
select min(A) AS A5 from grade where A>(select min(A) AS A4 from grade where A>(select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade)))))
結果經過驗證,沒有問題.
㈢ 請教一個問題,SQL怎麼查詢出排名第三的人
通過一條SQL選出排列第三的所有人,我可以把思路寫給你,自己調試完善下。
第一步,從大到小選出沒有重復的分數:select DISTINCT corse from tb order by corse desc
第二步,從小到大選出前三位:select top 3 corse from (select DISTINCT corse from tb order by corse desc) order by corse
第三步,選出第三位:select top 1 corse from (select top 3 corse from (select DISTINCT corse from tb order by corse desc) order by corse)
第四步,選出所有第三名的人:select * from (select top 1 corse from (select top 3 corse from (select DISTINCT corse from tb order by corse desc) order by corse))
㈣ SQL語句:查詢各班成績前3的同學姓名
分析如下:
可以用row_number函數來解決。
1、創建測試表,插入數據:
(資料來源:網路:SQL語句)
㈤ SQL:選課表(學號,課程號,成績),現要查詢成績最高的三個學生的學號、課程號和成績,包括並列情況
select * from 選課 where 成績>=(select 成績 from (select 成績,row_number()over(order by 成績 desc nulls last ) r from 選課) where r=3) order by 成績 desc。
考慮了並列關系,原理是先求出第三名同學的成績,然後與第三名同學的成績相等的同學認為等同於第三名,最後輸出的是前三名同學,和第三名並列的也一並輸出。如果看不懂裡面某個代碼可以告訴我,我用的是ORACLE。
㈥ SQL 怎樣查詢 單科成績排名第3名的學生
寫個笨點的方法,
SELECT * INTO #TempA FROM score ORDER BY degree DESC
SELECT TOP 1 * FROM #TempA WHERE degree NOT IN(SELECT TOP 2 degree FROM #TempA )
㈦ sql 資料庫如何選取最小值,第二最小值,第三最小值........
排序後使用top1將排名第一的去除就是排名第二的,將排名前2的去除就是排名第三的
如同分頁的查詢一樣
㈧ sql查詢第幾名的語句
select * from score as t1 where
(select count(*) from score as t2 where t2.subject=t1.subject and t2.score>=t1.score)=3
錯了,上面是每科成績第三,看下面的
select top 1 * from
(select top 3 avg(score) as avgscore,name from score group by name order by avgscore desc)
order by avgscore
㈨ 10萬條成績數據要查出第一名和第三名,怎樣寫sql語句最好
先無序查出所有數據,然後自己做3次冒泡排序就可以選出來了....電腦運算量只有30萬次.......- -