create table #TA(code varchar(100),name varchar(100),value int)
insert #ta values('001','张三/李四',    10)
insert #ta values('002','王五',                    6)
insert #ta values('003','赵六/王二/刘三',          6)
select top 8000 identity(int,1,1) id into #dali from sysobjects a,sysobjects bselect code,substring('/'+name,id+1,charindex('/','/'+name+'/',id+1)-id-1),value/(len(name)-len(replace(name,'/',''))+1)
from #TA aa,#dali bb 
where substring('/'+name,id,8000) like '/_%'
order by code,idgo
drop table #ta,#dali

解决方案 »

  1.   

    能请教大力兄一下:
    select top 8000 identity(int,1,1) id into #dali from sysobjects a,sysobjects b
    的意思吗??
      

  2.   

    在大力基础上统计分数:
    select name, sum(score) from (
    select 
    substring('/'+name,id+1,charindex('/','/'+name+'/',id+1)-id-1) name,value/(len(name)-len(replace(name,'/',''))+1) score
    from #TA aa,#dali bb 
    where substring('/'+name,id,8000) like '/_%') A
    group by name
      

  3.   

    现在终于知道,人外有人,天外有天,大力兄,I 服了 You...
    (小道消息:大家都开始怀疑,大力的血统是否纯正的地球人...)
      

  4.   

    select top 8000 identity(int,1,1) id into #dali from sysobjects a,sysobjects b生成一个临时表,里面放入8000条记录,数据是:1,2,3,....7999
      

  5.   

    还有,#dali表的8000和我的纪录数有关系吗?如果我的纪录很多,是不是需要加大#dali中id的值??
      

  6.   

    没有关系。8000是固定的,应为varchar最大只能放8000个字符