数据库SQL2000  语言delphi
第一种树形结构如下
-----------
编号             名称
------------
000000           学校
000100           一年级
000200           二年级
000101           一年级1班
000102           一年级2班
000201           二年级1班
000202           二年级2班
--------------
现在我想转换成下面这种结构存在数据库中,请问如何转换 谢谢
-----------
子      父     名称
-----------
0       -1     学校
1       0      一年级
2       0      二年级
3       1      一年级1班
4       1      一年级2班
5       2      二年级1班
6       2      二年级2班
--------------

解决方案 »

  1.   

    弄个中间表啦,这个问题该放到数据库版去。
    大概思路如下,比方说:
    Create Table TmpTB
    (
      id integer identity(0,1) not null,
      parent_id integer  null,
      original_id varchar(20) null,
      name varchar(20) null
    )
    然后
    Insert into TmpTB (original_id, name) select 编号, 名称 from 原始表 order by length(编号)
    update TmpTB a set parent_id=(select max(id) from tmpTB b where b.original_id<>a.original_id and a.original_id like b.original_id+'%')
    最后
    update TmpDB set parent_id=-1 where parent_id is null
      

  2.   

    加载到treeview,再从treeview按另一种模式保存到数据库