--临时表是否存在
if object_id('tempdb..#TempTable') is not null Begin
drop table #TempTable
end
--创建临时表
create table #TempTable(
TestSN nvarchar(50),
TestValues decimal(18,4),
TestRemark nvarchar(300)
)
--添加数据
insert into #TempTable values('20230710001',10.12,'test'),('20230710002',10.13,'test'),('20230710003',10.14,'test'),('20230710004',10.15,'test')
declare @ColName nvarchar(max)
declare @Sql nvarchar(max)
--拼接转列行数据
set @ColName= stuff((select ',['+TestSN+']' from #TempTable for xml path('')),1,1,'')
--拼接sql
SET @Sql='select DISTINCT *
from #TempTable as C
PIVOT( max(TestValues) FOR TestSN IN ('+ @ColName +') ) AS T'
EXEC(@Sql)
sql使用PIVOT函数进行行转列
最新推荐文章于 2025-03-20 23:19:52 发布