
展开全部
我提供一个思路,用游标一个个取数 + 动态拼接sql
declare @c1 varchar(50)
declare @c2 varchar(50)
declare @STR varchar(8000)
set @STR='select ''转成一行'' '
DECLARE cs CURSOR --一行行取c1,c2存入变量 @c1,@c2
for select c1,c2 from TABLE1 --TABLE1 即为原表
open cs
fetch next from cs into @c1,@c2
while @@FETCH_STATUS =0
begin
set @STR = @STR + ','+@c1+' , '+@c2+''
end
set @STR = @STR + ‘ into TABLE2 ’
exec(@STR) --执行拼接的sql
Select * from TABLE2 --Table2中即为所需要的转成一行的结果
这台电脑上没有装sql server。。这是用文本编辑出来的,可能运行时会报些错,调整下应该就可以了
declare @c1 varchar(50)
declare @c2 varchar(50)
declare @STR varchar(8000)
set @STR='select ''转成一行'' '
DECLARE cs CURSOR --一行行取c1,c2存入变量 @c1,@c2
for select c1,c2 from TABLE1 --TABLE1 即为原表
open cs
fetch next from cs into @c1,@c2
while @@FETCH_STATUS =0
begin
set @STR = @STR + ','+@c1+' , '+@c2+''
end
set @STR = @STR + ‘ into TABLE2 ’
exec(@STR) --执行拼接的sql
Select * from TABLE2 --Table2中即为所需要的转成一行的结果
这台电脑上没有装sql server。。这是用文本编辑出来的,可能运行时会报些错,调整下应该就可以了
追问
PIVOT函数能实现吗?万一字段名有二十个呢?岂不这种拼接写起来挺长的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |