select * from table order by mem_id,mem_gen;

解决方案 »

  1.   

    select * from table order by mem_id,mem_gen;
    你不能指望数据记录在物理地址上排序
      

  2.   

    TO ATCG:
    用这个语句是可以查询出排好序的数据,但我的问题是想排序数据库里这张表的数据,就是我一打开这张表就已经是排序好了的。除了INSERT .....SELECT ....这种重来一遍比较烦琐的方法外是否还有其他办法呢???谢谢!!!
      

  3.   

    TO qiyousyc:
    那我QUERY的时候因为INDEX的关系数据呈现的是排序的呀,只是在字段 mem_id这个PK上的INDEX怎么没起作用??谢谢!!我还能用什么方法呢???
      

  4.   

    楼主为何这样做,insert into语句不一定安排序记录
      

  5.   

    TO beckhambobo:
    你能再说详细些吗?
      

  6.   

    由于oracle的数据是分block存储的,你insert的时候oracle寻找empty的block,并把数据写入,但是后面insert的数据的block可能物理上在前面。
      

  7.   

    TO mywander:
    那我在query或select的时候,既然建了索引,应该会排序;我建了两个字段上的索引,它应该两个都排序吧,是吗?可是我发现它只排序了一个索引,另外一个没有排序。例如:
             字段1                      字段2
              1                          1
              4                          1
              3                          1
              2                          1
              2                          2
              1                          2
    就象这样:两个字段都有索引,但却只排序字段2
      

  8.   

    你看一看执行计划explain plan,可能只用上了一个索引。
      

  9.   

    TO mywander:
    谢谢你的建议,我想问一下,explain plan 中哪一个是查看使用了哪些索引?
      

  10.   

    TO mywander:
    谢谢!!我已经找到了。非常感谢!!!!