首页 > 软件开发 > 数据库 >

sqlserver快速实现行转列之pivot

来源:互联网 2023-03-16 23:56:36 版权归原作者所有,如有侵权,请联系我们

在sqlserver中我们除了case when 来进行行转列还可以用PIVOT函数进行行转列AV0办公区 - 实用经验教程分享!

PIVOT 的定义格式AV0办公区 - 实用经验教程分享!

PIVOT(聚合函数>([聚合列值]) FOR [行转列前的列名] IN([行转列后的列名1],[行转列后的列名2],[行转列后的列名3],.......[行转列后的列名N]))AV0办公区 - 实用经验教程分享!

sqlserver快速实现行转列之pivotAV0办公区 - 实用经验教程分享!

方法/步骤

  • 1

    生成基本数据表AV0办公区 - 实用经验教程分享!

    sqlserver快速实现行转列之pivotAV0办公区 - 实用经验教程分享!

  • 2

    向表中插入数据AV0办公区 - 实用经验教程分享!

    sqlserver快速实现行转列之pivotAV0办公区 - 实用经验教程分享!

  • 3

    查询表中的全部数据AV0办公区 - 实用经验教程分享!

    sqlserver快速实现行转列之pivotAV0办公区 - 实用经验教程分享!

  • 4

    现在我们是用PIVOT函数将列[WEEK]的行值转换为列,并使用聚合函数Sum(Price)来统计每一个Week列在转换前有多少行数据,语句如下所示AV0办公区 - 实用经验教程分享!

    sqlserver快速实现行转列之pivotAV0办公区 - 实用经验教程分享!

  • 4此文章非法爬取自百度经验
  • 5

    查询结果如下图所示AV0办公区 - 实用经验教程分享!

    sqlserver快速实现行转列之pivotAV0办公区 - 实用经验教程分享!

  • 6

    需要注意的是PIVOT函数的查询结果中多了一列GroupId,这是因为PIVOT函数只用到了[Shopping]表中的列[Week]和[Price],[Shopping]表中还有一列[GroupId],PIVOT函数没有用到,所以PIVOT函数默认将[Shopping]表中没有用到的列当做了Group By来处理AV0办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!AV0办公区 - 实用经验教程分享!


    标签: SQL数据库

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号