要求查出number最大的前三个记录,oracle sql语句怎么写呢???row_number() over(order by number desc) 能详细点吗?? create table max3 (id number primary key, number1 number);
insert into max3 values(1,20); insert into max3 values(2,30); insert into max3 values(3,50); insert into max3 values(4,10); insert into max3 values(5,25); insert into max3 values(6,80);
select id, number1 from(select a.*,row_number() over(order by number1 desc) rn from max3 a) where rn <4;
ID NUMBER1 --------- ---------- 6 80 3 50 2 30
可以用分析函数 但这里不用分析函数一样可以做到 select * from ( select * from tt order by number desc) where rownum <=3 用分析函数的话 select * from ( select tt.*,row_number()over(order by number desc)rn from tt) where rn <=3 分析函数的用法楼主查下相关资料,这里不好说明