日期:2014-05-19  浏览次数:20511 次

求救!烦人的查找数据问题!
本人现从事数据整理工作,现有一个表,里面存放的是一个树的数据结构,现在要增加一字段(F_ID)来保存(也就是每个树节点的父节点的ID),如果是根节点F_ID   j就为空即可!现举例来说明表的结构:
table   1:
  ID                               DOT           F_ID(新加)
    A                               null               null                 结果:F_ID=null根
    A01                           null               null                 结果:F_ID=A
    A01B                         null               null                 结果:F_ID=A01
    A01B   1/00               null               null                 结果:F_ID=A01B
    A01B   1/02                     .               null                 结果:F_ID=A01B   1/00
    A01B   1/04                   ..               null                 结果:F_ID=A01B   1/02
    A01B   1/06                 ...               null                 结果:F_ID=A01B   1/04
    A01B   1/08                   ..               null                 结果:F_ID=A01B   1/02
    A01B   1/10                     .               null                 结果:F_ID=A01B   1/00
     
      ........
用上面的例子:
ID   中   如果   len(ID)=1   and   Dot   is   null   就为根,
                      len(ID)=3   and   Dot   is   null;F_ID=A,
                      len(ID)=4   and   Dot   is   null;F_id=A01,  
                      len(ID)>   4   and   Dot   is   null;F_ID=A01B   ,
Dot有点的   点多的是点少的子,点相等的为同级。(可以看我写的结果)
现在数据量很大。需要查找每一条数据的父节点。然后放到F_ID中。
在sql中怎么解决,请大家帮助我,有好的建议也行!



------解决方案--------------------
借用楼上的数据~

-- 创建表
create table table1([ID] varchar(20),DOT varchar(20),F_ID varchar(20))
Go
-- 插入数据
insert table1 select 'A ',null,null
insert table1 select 'A01 ',null,null
insert table1 select 'A01B ',null,null
insert table1 select ID,null,null
insert table1 select 'A01B 1/02 ', &#