求一SQL语句

toplaji 2005-09-27 01:12:43
程序运行过程中取出一个动态表,字段包括班级,学号,成绩
要求对取出的数据做如下处理: 当一个班级的学生人数(学号)小于10的时候,去掉该班级首尾两个学号。
例如 取出一个动态表
班级 学号 成绩
1 1 .
1 2 .
。 。 .
。 。 .
2 1
。 。
3 1
。 。


请教了 !!
...全文
61 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
vivianfdlpw 2005-09-27
select * from 表 t
where (select count(1) from 表 where 班级=t.班级)>=10
or
(
(select count(1) from 表 where 班级=t.班级)<10
and
t.学号 not in(select min(学号) from 表 where 班级=t.班级
union
select max(学号) from 表 where 班级=t.班级
)
)
回复
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-09-27 01:12
社区公告
暂无公告