sql的select是默认按照正序读取数据库记录,现有一张table,里面的filed都不能作为order by的条件,类似:
-----------------------
filed1   filed2
张三     经理
李四     厨子
王老五   会计
-----------------------请问如何将这个表倒序,就是把王老五放在第一个,读取出来?谢谢谢谢!!!!

解决方案 »

  1.   

    按filed2排序
    SELECT * FROM TT ORDER BY IIF(filed2='会计',1,iif(filed2='厨子',2,3))
    将IIF改为你的数据库支持的函数
      

  2.   

    ls大哥,意思是手动建立一个临时索引?但table内的记录上千条,这样的做法不是很实用
    有没有不用order by具体的filed的方法?谢谢!
      

  3.   

    用这个方法是最简单的有没有不用order by具体的filed的方法
    没有
      

  4.   

    但是用这个方法,我没办法全部上千记录都加到后面的order by来建立一个索引吧?呵呵
      

  5.   

    你可以增加一个字段,
    UPDATE TT SET 字段=IIF(filed2='会计',1,iif(filed2='厨子',2,3)) 
    再按这个字段排序即可
      

  6.   

    我就是不想更改表结构,呵呵。看来不改不行啦
    但是按理说sql可以正序读出也应该可以倒序啊。呵呵
      

  7.   

    A
     ----------------------- 
     filed1   filed2 
     张三     经理 
     李四     厨子 
     王老五   会计 
     ----------------------- 
    如果只是仅最后一行调整到第一 
    ----------------------- 
    filed1   filed2 
    王老五   会计 
    张三     经理 
    李四     厨子 
    ----------------------- 用union即可select * from yourTable where filed1='王老五'
    union all
    select * from yourTable where filed1!='王老五'[align=center]====  ====
    [/align]
      

  8.   

    如果完全倒排
    ----------------------- 
    filed1   filed2 
    王老五   会计 
    李四     厨子 
    张三     经理 
    ----------------------- 则一个方法是,添加一个 filed3,然后把自然数序号填进去,
    select * from yourTable order by field3 desc;[align=center]====  ====
    [/align]
      

  9.   


    no,就是一些乱七八糟的数据,只是添加数据的时候是追加进去的。
    现在想用sql实现从最末开始读;或者读出来之后可以倒序排列。
      

  10.   


    发觉我自己没有说清楚,引起误会,sorry!我意思是倒序读出来,我的table 中有上千数据,但是希望倒序读取出来,而不是默认的正序读取;
    另外,table当中的filed都是无需一些data,所以无法用作order by的参数使用。
      

  11.   

    如支持Identity函数
    select Identity(int,1,1) as id,  * into ##temp from bygz order by id desc
    即可按倒序取出记录
      

  12.   

    看来只能添加一个filed但是我加入一个filed之后,定义其为auto_increase,以前的数据在新增的id这项都是“1” :(,好可怕,为何没有数据库没有自己自增好?