有这样一个表
id name
1 A,B
2 C,D,E
我想把它转换成这样的表
id name
1 A
1 B
2 C
2 D
2 E
请问应该怎么做?

解决方案 »

  1.   

    http://topic.csdn.net/u/20080612/22/c850499f-bce3-4877-82d5-af2357857872.html?23514
      

  2.   

    create table test3001
    (
    id int,
    name nvarchar(200)
    )
    insert into test3001
    select 1 ,'A,B'
    union select 2 ,'C,D,E'
    select a.id,SUBSTRING(a.name,number+1,1) from test3001 a
    inner join master..spt_values b
    on b.type='p' and SUBSTRING(a.name,number+1,1)<>'' and SUBSTRING(a.name,number+1,1)<>','----------------------------
    id          
    ----------- ----
    1           A
    1           B
    2           C
    2           D
    2           E(5 行受影响)
      

  3.   

    select a.id,SUBSTRING(a.name+',',number+1,CHARINDEX(',',a.name)-1) from test3001 a
    inner join master..spt_values b
    on b.type='p' 
    and LEN(SUBSTRING(a.name,number+1,CHARINDEX(',',a.name)))>0
    and CHARINDEX(',',SUBSTRING(a.name+',',number+1,CHARINDEX(',',a.name)-1))=0