列1     列2     序号  
   A      A1      1
  A      B       1(应该为3)
  A      A3      1  B      B1      1(应该为2)
  B      B2      1
  B      B3      1  B1     C1      1
  B1     C2      1
  B1     C3      1列2在列1中无数据 序号为1不变
拿第二行列2的数据B来说,B由子节点B1,B2,B3组成,B1由子节点C1,C2,C3组成,此时第4行列2的数据B1的对应的序号为2,也就是在原有的序号上加1。因为B由子节点B1组成,此时B的序号为3。总之就是一个树结构,第一层的序号最大,往下逐层递减,因为默认序号为1,所以需要从最底层向上对序号逐层递加。
这个方法如何写,递归写不好。

解决方案 »

  1.   

    再补充一行数据:
    列1     列2     序号  
     A      A1      1
     A      B       1(应该为3)
     A      A3      1
     
     B      B1      1(应该为2)
     B      B2      1(应该为2)
     B      B3      1
     
     B1     C1      1
     B1     C2      1
     B1     C3      1 B2     D1      1
     B2     D2      1
      

  2.   

                             B                  
               B1            B2        B3
         C1    C2   C3     D1  D2
    类似于上面树结构 B根节点序号为3,B1、B2 序号为2 最底层节点没有子节点 序号均为1 
    因为开始默认序号都是1 所以要更新有字节点的对应的序号,这个跟树的层次有关的,这样说可以理解吗?
      

  3.   

    SQL吗?  谷歌T-SQL CTE或查看MSSQLSERVER帮助文档CTE
      

  4.   

    如果SQL的话也可以 
    CTE试过 总是有问题 写不出来