美文网首页
2018-11-26 sql列转行 PIVOT 废了好大的劲

2018-11-26 sql列转行 PIVOT 废了好大的劲

作者: 1f658716b568 | 来源:发表于2018-11-26 10:36 被阅读0次
    官方的语法如下:
    PIVOT(
    聚合函数(value_column)
    FOR pivot_column
    IN(<column_list>)
    )
    
    待转列
    转后的效果图
    DECLARE 
     --保存最终执行的SQL语句
     @strSql nvarchar(1000),
     --定义变量保存要转化为列的数据
     @Date nvarchar(500)
    --赋值 很重要,不赋值执行没结果
     SET @Date=''
     --赋值 把所有要转化为列的数据保存在字符串中,并且以逗号分隔
     SELECT  @Date=@Date+CarCANData_Date  FROM (SELECT DISTINCT '['+CONVERT(varchar(10), CarCANData_Date, 23)+'],' AS CarCANData_Date FROM CarCANDataHis_Infor) AS T1
     --打印@Date
      PRINT(@Date)
     --去掉末尾的一个逗号
     SET @Date=SUBSTRING(@Date,1,LEN(@Date)-1)
     --使用PIVOT运算符转化
     SET @strSql= 'SELECT * FROM (SELECT Car_PlateNumber,CONVERT(varchar(10), CarCANData_Date, 23) AS RQ,CarCANData_CumulativeMileage FROM dbo.CarCANDataHis_Infor left join Car_Infor c on CarCANData_CarID=Car_ID) AS a PIVOT(SUM(CarCANData_CumulativeMileage) FOR RQ IN ('+@Date+') ) AS b'
     --打印最终执行的SQL
     PRINT(@strSql)
     --执行sql
     EXEC (@strSql)
    

    相关文章

      网友评论

          本文标题:2018-11-26 sql列转行 PIVOT 废了好大的劲

          本文链接:https://www.haomeiwen.com/subject/aobvqqtx.html