求一SQL语句,只返回结果集中的前N行
表:
id class name
1 0701 张三
2 0702 王明
3 0703 刘若英
4 0702 张静初
5 0702 李太兰
6 0703 孔孝真
如上表,我要结果返回每一个班的前两名,怎么办?top好像只能在总的结果集取前N个记录,我的要分类。
------解决方案--------------------form--> from,笔误
select * from tb
where id in (select top 2 id from tb as t where class=tb.class)
------解决方案--------------------select * from tb a
where id in (select top 2 id from tb where class=a.class order by id) order by class,id
------解决方案--------------------楼主 那么怎么判断班级的前二名呢 你又没有分数
------解决方案--------------------SELECT * FROM TABLE AS PQS
WHERE ID IN (SELECT TOP 2 ID FROM TABLE WHERE CLASSID=PQS.CLASSID )