本帖最后由 MadWork 于 2013-04-12 14:54:18 编辑

解决方案 »

  1.   

    这个已经是自描述的树啦,定长4级编码,每级2位,还需要怎么查呢。给定一个编码已经包含所有祖先信息,子孙级就用like来查咯。
      

  2.   

    select xh,
    case 
    when xh like '__000000' then '00000000'
    when xh like '____0000' then SUBSTRING(xh,1,2)+'000000'
    when xh like '______00' then SUBSTRING(xh,1,4)+'0000'
    else SUBSTRING(xh,1,6)+'00'
    end xh1
    from (
    select '35000000' xh
    union all
    select '35010000' xh
    union all
    select '35010100' xh
    union all
    select '35010101' xh
    union all
    select '35010201' xh
    union all
    select '35020000' xh
    union all
    select '35010200' xh
    ) aa结果
    xh xh1
    35000000 00000000
    35010000 35000000
    35010100 35010000
    35010101 35010100
    35010201 35010200
    35020000 35000000
    35010200 35010000
      

  3.   

     这就是个树形的数据啊, 判断很简单,就根据后面0的位数来判断了。 我没写语句是因为我不知道LZ的最上级的节点数字是2位数还是3位数,如果lz正在苦思建表的话我觉得这样的树形会简单一点
    0001
    00010001
    000100010001
    000100010002
    00010002
    000100020001
    0002
    00020001
    这样的对于节点层级关系少一点的比较好