Oracle PL/SQL:
Select Level as 级数,ID,上级ID,名称 From 材料表
Start With 上级ID is NULL Connect by ID=上级ID
------------------------------------------------
级数      ID      上级ID        名称
-------  --------  --------  ---------------
1          23      NULL      电脑配件
2          42      23        显示器
3          45      42        LED显示器
3          46      42        CRT显示器
4          52      46        纯平显示器
4          53      46        球面显示器
2          11      23        光盘驱动器
3          12      11        普通光驱
3          13      11        刻录光驱
3          67      11        DVD光驱
1          14      NULL      电脑耗材
....
------------------------------------------------
树形结构如下:
电脑配件
  显示器
    LED显示器
    CRT显示器
      纯平显示器
      球面显示器
  光盘驱动器
    普通光驱
    刻录光驱
    DVD光驱
电脑耗材
------------------------------------------------
我想无论数据开始怎么排列,在sql server 中经过查询语句后能够按照上面的顺序显示出来。

解决方案 »

  1.   

    去联合兴邦看看吧!(lx)http://www.qdcombine.com
      

  2.   

    只能通过存储过程来实现吗?oracle内部的机制也是这样的吗?
      

  3.   

    你的层数在实际中是未知的吧....那我想必须用嵌套存储过程了
    Select Level as 级数,ID,上级ID,名称 From 材料表
    Start With 上级ID is NULL Connect by ID=上级ID
    这个语句可以么?
      

  4.   

    to bluemeteor:
      层数在实际中假如能够确定呢?添加的数据可以选择所属大类,这样,它的层数就是父类+1;
      那条语句我没有试过,我是在看另一篇讨论如何根据现有数据生成一棵TreeView中看到的。
      谢谢指点!