『壹』 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
『貳』 查詢第名字的第二個字和第三個字相同的sql語句
利用資料庫自帶函數截取名字欄位的第二個字和第三個字,然後在where條件裡面判斷相等,Oracle中是instr函數
『叄』 sql 查找成績排名第二的同學
你這信息不足以讓我了解如何給你答案,很明顯,如果第一名有並列、第二名也有並列的情況,以上各位用top的答案都是錯的。
因此,建議你將表結構給出來,我好幫你分析問題。
或者你試試看這樣:
select * from tbl_score where score =
(
select distinct top 1 score from tbl_score where score not in(
select distinct top 1 score from tbl_score order by score desc
) order by score desc
)
我在我自己的臨時表測試過,應該這樣就可以滿足的了查詢成績第二的情況,包括並列第二的所有人。
不知道樓主是否想要的就是這樣?
『肆』 SQL 查詢各門成績前兩名的學生
你先抽一條數據來反過來理解這條SQL
比如 你表格里的第一條:陳六、政治
SQL里的子句你把t.subject 替換成 我們這條數據真實的值,就可以看出來
select top 2 stu_id from stu_score where subject='政治' order by score desc
就是查詢我當前這條記錄對應的subject(政治)里,成績最高的兩條數據的 stu_id。
我再提供一種寫法給你
select*from(
selectt1.*,row_number()over()asfidfromstu_score)wherefid<=2
這種寫法主要是row_number() over(partition by subject order by score desc),
意思是:我按照subject 分組,根據score排序從大到小,分別標出序號fid。也就是我把不同subject的成績按從大到小排序,然後外層再取各自的前兩名
『伍』 SQL語句如何查詢成績第二高的學生
假設學生成績表為xscj,裡面有若干個欄位,其中包括具體成績得分欄位df,那麼,查詢所有成績第二高學生的SQL語句如下:
select * from xscj where df in (
select max(df) from xscj where df not in (
select max(df) from xscj))
該語句嵌套基層,最內層的語句查詢最高分,第二層的語句查詢除了最高分以外後剩下的最高分(即第二高分),最外層即是查詢第二高分有哪些人(可能存在多人的情況)。
『陸』 查詢班中第二名到第五名的學生信息,並進行降序排列用sql語句怎麼實現
select * from 學生信息 where 名次>=2 and 名次<=5 order by 名次 desc
或select * from 學生信息 where 名次 between 2 and 5 order by 名次 desc
『柒』 SQL語句 撈出各班級總分第二的人
--按班級分組 最大的總分 去掉最大的分數 就是第二名
select x.* from A x,
(select classId,max(Math+English+Yuwen) as SecondScore from A
where Id not in --先去掉總分第一名的id
(select A.ID from A,
(select ClassId,max(Math+English+Yuwen) as TotalScore from A
group by ClassId) t
where a.Math+a.English+a.Yuwen=t.TotalScore and A.ClassId=t.ClassId)
group by classId) temp
where x.Math+x.English+x.Yuwen=temp.SecondScore
and x.ClassId=temp.ClassId
『捌』 SQL 查找第二高的
select top 2 * from [學生表] where id not in (select top 1 * from [學生表] order by [成績] ) order by [成績]
查出前2名,不在第一名的裡面就是第二名了啊,1樓的是錯的,哪有order by 在where條件前面的啊!
『玖』 sql中查詢排名名次
sql語句是這樣的
select count(*) from student where class=601 and score>(select score from student where name='張三')
這個就求出了在601班的張三前有多少個人,他的名就是這個返回值+1,這個問題不關排序鳥事。做個統計就行了!
你不會是要在頁面直接調用sql語句吧!
常規方法是把這個放在一個業務類傳給數據訪問層做處理後返回結果傳給頁面
你問的response.write這個有點吃力吧!