SQL20052008行转列脚本编写(不加合计或平均数)

    xiaoxiao2021-12-13  61

    ----使用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

    最新回复(0)