select * from table a where exists(select * from table where 学科编号=a.学科编号 and 分数>a.分数 having count(*)<=1)Order by 学科编号,分数 Desc
解决方案 »
- 批量插入数据的问题,请帮忙!有一个表,往这个表中连接插入n条数据,这一个是字段是IDENTITY,另外一个字段的数据与这相关,不知如何插入
- 急呀,小妹求各位大哥关于SQL sever2000安装呀!
- 查询问题
- sql问题 希望高手帮助
- 这个SQL怎么写?INSERT
- 修改字段的标识出错问题
- 请帮忙解决“约束既可为空又必唯一的解决方法”问题?
- ****欢迎讨论在线等候答对给分不够再加************绝对编程高手请进************绝对编程高手请进*****************
- 分布式数据库问题,怎样调用不同服务器上的不同DBMS!
- 如何调出用二进制格式存在sql server库里的图片,最好有详细的代码?
- 修改已经设计好的表的列标识,在现等!
- 询问一SQL语句,高手请进
Select *
From table a
Where 学生学号 in (Select Top 2 学生学号
From table
Where 学科编号 =a.学科编号
Order by 分数 desc)
order by 学科编号,分数 desc
select top 2 学生学号 from tb where 学科编号=a.学科编号) order by a.学生学号
--建立测试环境
Create Table TEST
(学生学号 Varchar(10),
学科编号 Int,
分数 Int)
--插入数据
Insert TEST Values('01', 1, 100)
Insert TEST Values('02', 1, 90)
Insert TEST Values('03', 1, 80)
Insert TEST Values('01', 2, 90)
Insert TEST Values('02', 2, 100)
Insert TEST Values('03', 2, 70)
Insert TEST Values('01', 3, 90)
Insert TEST Values('02', 3, 100)
Insert TEST Values('03', 3, 95)
GO
--测试
Select * from TEST A
Where Not Exists (Select 1 from TEST Where 学科编号=A.学科编号 And 分数>A.分数 Having Count(1)>1 )
Order By 学科编号,分数 Desc
--删除测试环境
Drop Table TEST
--结果
/*
学生学号 学科编号 分数
01 1 100
02 1 90
02 2 100
01 2 90
02 3 100
03 3 95
*/
from
(
select 學生學號 ,sum(分數) 分數
from tablename
group by 學生學號
) A
order by sum(分數)
Where Not Exists (Select 1 from TEST Where 学科编号=A.学科编号 And 分数>A.分数 Having Count(1)>1 )
Order By 学科编号,分数 Desc
请问可以整个解释下吗,我想了想还是有点不太明白为什么要这样写,谢谢