打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
sql PIVOT 行转列

基本语法

数据源 PIVOT( 

列(匹配列的数据值 转换后为一行) 

FOR

列(需要放到行标题的那一列,转换后为固定标题值) IN (列名称)

)

e.g

有数据:

UserNameSubjectScore

张三                     语文80

张三                     数学90

张三                     英语70

张三                     生物85

李四                     语文80

李四                     数学92

李四                     英语76

李四                     生物88

sql语句:

  SELECT * FROM Table

PIVOT (

  sum(Score) FOR subject 

  IN ([语文],[数学],[英语],[生物])

) AS T

结果:

UserName 语文 数学 英语 生物

李四                 80 92 76 88

张三                 80 90 70 85

--------------------------------------------------

但在大多数情况下,我们的数据源很有可能是表连接的结果,只需要做个简单转换即可

 SELECT * FROM (

SELECT * FROM Table 

left join .... ) P

PIVOT (

  sum(Score) FOR subject 

  IN ([语文],[数学],[英语],[生物])

) AS T

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
sql的行转列(PIVOT)与列转行(UNPIVOT)
SQL 行列转换 (PIVOT和UNPIVOT运算符 )
行列互转 - 转
10 分钟,带你彻底掌握 SQL 多表查询(建议收藏)
Excel VBA ADO SQL入门教程017:交叉表查询
sql 排序去重的方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服