我的表的结构是这样的:
name T_QuickLink
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ---------------------------- ID                                        NOT NULL NUMBER(18)
 NAME                                               NVARCHAR2(20)
 NOTE                                               NVARCHAR2(50)
 IMAGEURL                                           NVARCHAR2(300)
 LINKURL                                            NVARCHAR2(300)
 TYPE                                               NVARCHAR2(1)
 ORDERNO                                            NUMBER(4)
select orderno from T_Quicklink where rownum<=10 order by orderno;
这句话不能正确的选择出前10条记录,郁闷,为什么?
select orderno from T_Quicklink order by orderno;
这样却能正确排序,why?

解决方案 »

  1.   


    select orderno from T_Quicklink where rownum <=10 order by orderno; 

    这句话不对吗?对id字段却可以,这样
    select id from t_quicklink where rownum<=10 order by id;
    这句可以,为什么?还是我插入的数据有问题
      

  2.   

    select * from (
    select orderno from T_Quicklink order by orderno)
    where rownum<=10;
      

  3.   

    --试一下:select orderno
      from (select rownum, orderno from T_Quicklink order by orderno)
     where rownum <= 10;
      

  4.   

    你下面这句,取出前10行记录,再对这10条记录进行排序.
    select orderno from T_Quicklink where rownum <=10 order by orderno;
    下面这句之的以能正确排序,估计是你的id列的值在数据表里是按小到大的顺序,所以感觉是正确的.
    select id from t_quicklink where rownum <=10 order by id;
    要实现你想要的结果,应该这么写SQL:
    select orderno 
      from (select orderno from T_Quicklink order by orderno)
     where rownum <= 10; 
      

  5.   

    select * from (select orderno from T_Quicklink  order by orderno) where rownum <=10;