比如查询一张表,不管我order by哪一个字段  该表的 id 字段总是从1开始 每次加1比如现有一张表student(stuid,stuname)
数据为:
1   a
2   b
3   ac
4   ba
5   bd
如果我order by stuname  那么顺序应该是(a,ac,b,ba,bd)  怎样让他们的id值从1到5还有删除的时候,自动重新排序

解决方案 »

  1.   


    select rownum,stu.* from (
    select stuname from student
    order by stuid) stu
      

  2.   

    把表中的id列去掉,也不用维护,你每次取数据时加上rownum做为id列就可以了。
    select rownum id,talbe.* from table
      

  3.   

    可以借助触发器,每次更新完,就update全表。  启用rownum  不过这样会导致原来的数据都变化。
      

  4.   

    谢谢各位喽  我知道了  O(∩_∩)O~ 问一下哈 那个 rownum是数据库自带的吗?具体这个是怎么存储或者运行的呢?