----使用stuff() DECLARE @sql VARCHAR(8000) SET @sql='' --初始化变量 @sql SELECT @sql= @sql+',' + QUOTENAME(日期) FROM tb GROUP BY 日期 --变量多值赋值 SET @sql= STUFF(@sql,1,1,'')--去掉首个',' SET @sql='SELECT * FROM tb pivot( MAX(金额) FOR 日期 IN ('+@sql+'))a' PRINT @sql exec(@sql)
-----或使用isnull()
DECLARE @s NVARCHAR(4000)
--获得课程集合
SELECT @s = ISNULL(@s + ',', '') + QUOTENAME(日期)
FROM (select distinct 日期 from tb) as A ---列名不要重复
Declare @sql NVARCHAR(4000)
SET @sql='
select r.* from tb
pivot
(
max(金额)
for 日期 in ('+@s+')
) as r'
EXEC( @sql)
变成:
转载请注明原文地址: https://ju.6miu.com/read-950145.html