在该列上我还建立了主键,但如果这样写primary key(id desc)也会出错,我不希望他升序排列,我希望Id是降序排列,Hlep me!!

解决方案 »

  1.   

    create index idx_tt on tt(id desc);
      

  2.   

    这样只是创建里一个降序索引吧,不能按物理上排序的,我是希望直接用select * from tt就可以按ID号排序显示,这必须要求ID号列是物理排序的吧
      

  3.   

    在oracle中,要实现你的要求只能将表改为索引优化(organization index),也就是相当于sybase中的clustered index。但是如果你的表频繁插入更新的话,用索引优化表会降低写入速度。
      

  4.   

    order by rowidSQL> select * from dept order by rowid desc;    DEPTNO DNAME          LOC
    ---------- -------------- -------------
            40 OPERATIONS     BOSTON
            30 SALES          CHICAGO
            20 RESEARCH       DALLAS
            10 ACCOUNTING     NEW YORK已用时间:  00: 00: 00.10
    SQL>
      

  5.   

    order by rowidSQL> select * from dept order by rowid desc;    DEPTNO DNAME          LOC
    ---------- -------------- -------------
            40 OPERATIONS     BOSTON
            30 SALES          CHICAGO
            20 RESEARCH       DALLAS
            10 ACCOUNTING     NEW YORK已用时间:  00: 00: 00.10
    SQL>
      

  6.   

    那么,如果我想按ID降序排列,并取其中的第20到50条记录,如何写SQL效率更高?
    我这样写:
    select * from (select rownum rn,table.* from table order by column_name) where rn>=20 and rn<=50
    但如果表里有2万条记录时,就会需要3秒左右,但实际的表格有10万记录左右,这样每查询一次需要的时间太长了啊。
    Oracle是大型数据库,它应该可以优化查询速度吧
      

  7.   

    http://community.csdn.net/Expert/TopicView.asp?id=4096226
      

  8.   

    to bobfang(匆匆过客) 
    我在那个帖子上有个人这样写
    select * from(select t.*,row_number() over(order by t.id desc) rn from table t )where rn>0 and rn<=20
    我向问一下,Over函数是怎么意思,而且这个语句中没有用到Rowid,能查询到吗?
      

  9.   

    to  bobfang(匆匆过客)
    你是这样写的: 
    select /*+FIRST_ROWS*/ * from t 
    where rowid in 
    ( select rid from 
    ( select rownum rno,rid from 
    ( select rowid rid from t 
    where category = 20 
    order by category,product_name 
    ) where rownum <= 5000 
    ) where rno >= 4981 
    )
    但我看在子查询里选择记录还是用的rownum,那么这样写是用的什么原理让查询速度变快呢?
    category 是T表中的某列吧?既然Where后面已经有了category = 20条件,Order By后面为什么要加上category?
    不好意思,对这种查询的原理不是很理解,请指教,谢谢.