按id_pre排序啊,这有用吗?!无聊啊!

解决方案 »

  1.   

    id_pre排序?有这么简单嘛???
    比如有序的四条记录:a<->f<->b<->c
    存在表中就是:
    id_pre id id_nextnull   a   f
    a      f   b
    f      b   c
    b      c   null没错,按id_pre或id_next都可以排,关键是你怎么排?用order ?显然不行!!!
    总不能一条条记录地SELECT吧,效率也太低了
      

  2.   

    用order为什么不行!
    如果保证id_pre和id_next都是有效的话!
    只要按order by ip_pre就可以了!
      

  3.   

    看:http://www.csdn.net/expert/topic/154/154561.shtm
      

  4.   

    你没看到我的例子嘛
    id_pre分别为null,a,f,b
    你怎么order啊?
      

  5.   

    In Oracle.table_test:
    ID        ID_PRE    ID_NEXT
    ---------- ---------- ----------
    01                    02
    02        01        03
    05        04        06
    03        02        04
    04        03        05>>SQL> SELECT id_pre,id,id_next
      2      FROM table_test
      3      START WITH id = '01' 
      4      CONNECT BY PRIOR id_next = id;ID_PRE    ID        ID_NEXT
    ---------- ---------- ----------
              01        02
    01        02        03
    02        03        04
    03        04        05
    04        05        06 
      

  6.   

    omHan(小马哥),感谢你的帮助,还想请教一下你的SQL语能通用吗?换不同的DBMS行不行,我只是SQL的初学者 
      

  7.   

    这个题目有点意思,不过能用select语句实现,应该用存储过程,好好想想吧!
      

  8.   

    有没有考虑已对多的情况,即一个父对应多个子?
    所以不可能用一条SELECT语句完成,明天把代码给你!
      

  9.   


    你用的是啥数据库?
    这句话在SQL中就通不过。可惜我手上没有SQL92。
      

  10.   

    该语句是方言。
    SQL Server只好用游标、临时表,逐行填prior,next。
    或者另加一个字段,在增删改的时候维护它,记录每行在序列中的位置,select时按此字段排序。
    总之是个病态的表结构。
      

  11.   

    kock(荷赫) 
    什麽病态的表结构!老兄!!!这是一个标准的分极查询。
      

  12.   

    现在用啥数据库都没定下,所以想搞一个通用的。
    ericzou(eric)说得没错,还没考虑一父多子呢,我想那更难了。
      

  13.   

    leo2u(财源广进) 在oracle中一父多子也可以实现。而且显示也可以用tree view 形式显示。如果你的数据库还没定,你就选oracle吧.
      

  14.   

    呵呵,谢谢TomHan(小马哥)的建议,ORACLE好是好,可选哪个数据库不是由我来决定啊,
    要想使代码不依赖于具体的DBMS,看来不容易实现了