排序+取前多少条的数据还是这样解决比较保险:
1.Select * From (
Select test.*, rank() over(Partition By monthid Order By gz Desc) rk From test)
Where rk = 10
----oracle支持rank函数
2.
select * from test a
where (select count(*) from test b where a.gz < b.gz and a.monthid = b.monthid) < 11
对于我的数据库的一个表,我用
select * from tbi_sa06
where rownum<10
order by crd_no
和
select * from tbi_sa06
where rownum<10
order by crd_depriv_mgt_no
所查询的记录是不一样的.我的表的记录有40多条.