请问sql中把一个表的一个列值当成另一个表的字段
大牛路过帮帮忙,感激不尽,小弟挺急的,在线等
百度sql 行列转换
if object_id('tempdb..#tb')is not null
drop table #tb
go
create table #tb(课程 varchar(10))
insert into #tb values('语文')
insert into #tb values('数学')
insert into #tb values('物理')
--测试数据结束
SELECT * ,2 AS cnt
INTO #tab
FROM #tb
DECLARE @name VARCHAR(max),@sql VARCHAR(max)
set @name =stuff((SELECT DISTINCT ',['+[课程]+']' from #tab for xml PATH('')),1,1,'')
set @sql ='SELECT * from #tab pivot(max(cnt)for 课程 in('+@name+'))a where 1<>1'
PRINT @sql
EXEC( @sql)
问题已解决,感谢各位,我可能前面没表达清楚,是动态的列值要用动态sql