例如我现在有一个表
id     fNumber
1        DN 
2        DN.TS
3        DN.BJB
4        DN.TS.ZJ
5        DN.TS.ZJ.ZB
  这样子我想新建一个表 
然后根据id循环 增加fNumer 然后在每次循环中检测fNumber的值 自动添加fLevel
请问 怎么做?
变成
fNumber                fLevel
DN                        1 
DN.TS                     2
DN.BJB                    2
DN.TS.ZJ                  3
DN.TS.ZJ.ZB               4可以理解为根据.来判断
所以我想请教下 
要怎么写 才可以自动生成?谢谢了 
在线等

解决方案 »

  1.   

    select flevel=identity(int,1,1),fNumber   into newtb from tb
      

  2.   

    select *,fLevel= len(fNumber)-len(relplace(fNumber,'.','')) + 1
    from tb
      

  3.   

    o ,理解错误
    select fnumber,flevel=len(fnumber)-len(replace(fnumber,'.','')+1
    into newtb
    from tb
      

  4.   

    如果新建表,则在语句前面加
    insert newtbinsert newtb
    select *,fLevel= len(fNumber)-len(relplace(fNumber,'.','')) + 1 
    from tb
      

  5.   

    if object_id('[TB]') is not null drop table [TB]
    go
    create table [TB] (id int,fNumber nvarchar(22))
    insert into [TB]
    select 1,'DN' union all
    select 2,'DN.TS' union all
    select 3,'DN.BJB' union all
    select 4,'DN.TS.ZJ' union all
    select 5,'DN.TS.ZJ.ZB'select * from [TB]
    SELECT *, LEN(fnumber)+ 1 - LEN(REPLACE(fnumber,'.','')) AS flevel
    FROM TB/*
    id fNumber flevel
    1 DN 1
    2 DN.TS 2
    3 DN.BJB 2
    4 DN.TS.ZJ 3
    5 DN.TS.ZJ.ZB 4*/