sjx sgyxm fresult
A453B 标准干定量 3.5
A453B 公定回潮率 3
A453B 设计捻系数 4
A453B 实际总牵伸 0
A453B 总牵伸效率 0
各位高手,谁能用sql语句给进行行列转换如下:上表行数不固定,奕转换后的列数不固定sjx, 标准干定量,公定回潮率,设计捻系数,实际总牵伸,总牵伸效率
A453B 3.5 3 4 0 0
A453B 标准干定量 3.5
A453B 公定回潮率 3
A453B 设计捻系数 4
A453B 实际总牵伸 0
A453B 总牵伸效率 0
各位高手,谁能用sql语句给进行行列转换如下:上表行数不固定,奕转换后的列数不固定sjx, 标准干定量,公定回潮率,设计捻系数,实际总牵伸,总牵伸效率
A453B 3.5 3 4 0 0
create table 表1(姓名 varchar(10),数学 int,物理 int,语文 int)
insert 表1 select '张三',50,60,70
union all select '李四',80,62,83
union all select '王五',90,85,77
go--查询处理
declare @s1 varchar(8000),@s2 varchar(8000)
,@s3 varchar(8000),@s4 varchar(8000),@s5 varchar(8000)
,@i varchar(10)
select @s1='',@s2='',@s3='',@s4='',@s5='',@i='0'
select @s1=@s1+',@'+@i+' varchar(8000)'
,@s2=@s2+',@'+@i+'=''项目='''''+name+''''''''
,@s3=@s3+'
select @'+@i+'=@'+@i+'+'',[''+[姓名]+'']=''+cast(['+name+'] as varchar) from 表1'
,@s4=@s4+',@'+@i+'=''select ''+@'+@i
,@s5=@s5+'+'' union all ''+@'+@i
,@i=cast(@i as int)+1
from syscolumns
where object_id('表1')=id and name<>'姓名'select @s1=substring(@s1,2,8000)
,@s2=substring(@s2,2,8000)
,@s4=substring(@s4,2,8000)
,@s5=substring(@s5,16,8000)exec('declare '+@s1+'
select '+@s2+@s3+'
select '+@s4+'
exec('+@s5+')')
go--删除测试环境
drop table 表1/*--测试结果
项目 张三 李四 王五
---- ----------- ----------- -----------
数学 50 80 90
物理 60 62 85
语文 70 83 77(所影响的行数为 3 行)
--*/