日期:2014-05-18  浏览次数:20442 次

将一行的数据转换成多行
表T1(只两行):
L1 L2
  AAA
001 AB
  CD

002 BB
  DDD

想查询出这样的结果(五行):
L1 L2
001 AAA
001 AB
001 CD
002 BB
002 DDD

表T1只有两行的数据(001和002那两行),想分成结果那样,请问SQL2000查询语句怎样写.

------解决方案--------------------
格式t1表不明确
------解决方案--------------------
SQL code
create table T(L1 char(3),L2 varchar(100))
insert T select '001','AAA'+char(10)+'AB'+char(10)+'CD'
insert T select '002','BB'+char(10)+'DDD'
go

declare @sql varchar(8000)
set @sql = ''
select @sql = @sql + replace(L2,char(10),''' union select '''+L1+''', ''')
from (select l1,char(10)+ l2 as l2 from t) a

set @sql =  stuff(@sql,1,8,'')+''''
exec(@sql)
drop table t

/*

          
---- ---- 
001  AAA
001  AB
001  CD
002  BB
002  DDD

*/