eg:
create table dml.cases(
num NUMBER primary key, --序号
name VARCHAR2(50),     --案例名称
intro VARCHAR2(100),    --案例简介
);现在希望获得num=10 的数据 在按num 降序排列后的排名,也就是第几个

解决方案 »

  1.   

    再补充个问题啊,就是要查按num 降序排列第十个数据怎么写,谢谢
      

  2.   


    select * from (
    select a.*,row_number()over(order by num desc) as no from cases a
    )
    where no=10
      

  3.   

    select rownum rn,t.* from 
    (select * from dml.cases order by num desc)  t
    where t.num=10;
      

  4.   

    不能用rownum,因为rownum必须包含rownum=1的值,否则取不到可以用分析函数row_number()帮你解决问题
      

  5.   

    --第10个数据
    SELECT *
      FROM (SELECT rownum rn, t.* FROM (SELECT * FROM dml.cases ORDER BY num DESC) t)
     WHERE rn = 10;
      

  6.   

    create table dml.cases(
    num NUMBER primary key, --序号
    name VARCHAR2(50), --案例名称
    intro VARCHAR2(100), --案例简介
    );再补充个问题啊,就是要查按num 降序排列第十个数据怎么写,谢谢1   select count(*) from dml.cases where num>10;
    2   补充问题:select * from dml.cases  where rowid=10 order by dese;
      

  7.   

     
    1 select count(*)+1 from dml.cases where num>10;
    2 补充问题:select * from dml.cases where rowid=10 order by dese;
      

  8.   

    好像都理解错我的意思了,第一个帖子的正确答案:
    select row_number from ( select row_number() over(order by num desc) as row_number,num,name from cases order by num desc )where num=10;