mysql+pivot+列转行_sql的行转列(PIVOT)与列转行(UNPIVOT)-程序员宅基地

技术标签: mysql+pivot+列转行  

CREATE TABLE [StudentScores]

(

[UserName] NVARCHAR(20), --学生姓名

[Subject] NVARCHAR(30), --科目

[Score] FLOAT, --成绩

)

INSERT INTO [StudentScores] SELECT ‘张三‘, ‘语文‘, 80

INSERT INTO [StudentScores] SELECT ‘张三‘, ‘数学‘, 90

INSERT INTO [StudentScores] SELECT ‘张三‘, ‘英语‘, 70

INSERT INTO [StudentScores] SELECT ‘张三‘, ‘生物‘, 85

INSERT INTO [StudentScores] SELECT ‘李四‘, ‘语文‘, 80

INSERT INTO [StudentScores] SELECT ‘李四‘, ‘数学‘, 92

INSERT INTO [StudentScores] SELECT ‘李四‘, ‘英语‘, 76

INSERT INTO [StudentScores] SELECT ‘李四‘, ‘生物‘, 88

INSERT INTO [StudentScores] SELECT ‘码农‘, ‘语文‘, 60

INSERT INTO [StudentScores] SELECT ‘码农‘, ‘数学‘, 82

INSERT INTO [StudentScores] SELECT ‘码农‘, ‘英语‘, 96

INSERT INTO [StudentScores] SELECT ‘码农‘, ‘生物‘, 78

cfcbd7c5ce62635a3badcdb04838be96.gif

b9ef52fa635f81cafdcd820406cad880.png

2、行转列sql

cfcbd7c5ce62635a3badcdb04838be96.gif

SELECT * FROM [StudentScores] /*数据源*/

AS P

PIVOT

(

SUM(Score/*行转列后 列的值*/) FOR

p.Subject/*需要行转列的列*/ IN ([语文],[数学],[英语],[生物]/*列的值*/)

) AS T

cfcbd7c5ce62635a3badcdb04838be96.gif

执行结果:

0d542fecc71863b7eb9b28278416547d.png

二、列转行

1、测试数据准备

cfcbd7c5ce62635a3badcdb04838be96.gif

CREATE TABLE ProgrectDetail

(

ProgrectName NVARCHAR(20), --工程名称

OverseaSupply INT, --海外供应商供给数量

NativeSupply INT, --国内供应商供给数量

SouthSupply INT, --南方供应商供给数量

NorthSupply INT --北方供应商供给数量

)

INSERT INTO ProgrectDetail

SELECT ‘A‘, 100, 200, 50, 50

UNION ALL

SELECT ‘B‘, 200, 300, 150, 150

UNION ALL

SELECT ‘C‘, 159, 400, 20, 320

UNION ALL

cfcbd7c5ce62635a3badcdb04838be96.gif

78cc59ac0accbc249a0b8fc33242f22d.png

2、列转行的sql

cfcbd7c5ce62635a3badcdb04838be96.gif

SELECT P.ProgrectName,P.Supplier,P.SupplyNum

FROM

(

SELECT ProgrectName, OverseaSupply, NativeSupply,

SouthSupply, NorthSupply

FROM ProgrectDetail

)T

UNPIVOT

(

SupplyNum FOR Supplier IN

(OverseaSupply, NativeSupply, SouthSupply, NorthSupply )

) P

cfcbd7c5ce62635a3badcdb04838be96.gif

执行结果:

2791918736610063b6daf268af231e3c.png

sql的行转列(PIVOT)与列转行(UNPIVOT)

标签:toolbar   nat   国内   sub   img   for   方式   生物   tde

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/linjincheng/p/9988392.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36118025/article/details/114338642

智能推荐

hibernate实体属性为布尔类型时命名应注意的地方-程序员宅基地

文章浏览阅读237次。一个对象中的属性有布尔类型时,命名的时候尽量不要把前缀定为is,因为在使用HQL查询的时候,属性必须去掉is前缀,然后小写首字母才能查询出结果,否则查询不到任何数据;例如,有一个User对象,里面有一个标识这个用户是否激活的属性,然后将其命名为isActivated,在查询的时候,根据HQL的规则,使用 user.isActivated = true去查询,将得到错误的提示:isActivat..._hibernate不能包含is

MapReduce中文翻译_for v in values: result += v-程序员宅基地

文章浏览阅读226次。MapReduce: 超大机群上的简单数据处理 ..._for v in values: result += v

【VUE】关于VUE环境配置问题导致IIS发布之后Create与Mounted方法的执行问题_vue create未加载完就进入页面-程序员宅基地

文章浏览阅读960次。写在前面的   最近在IIS发布了我们的项目之后发现,原本写在代码中的Create方法与Mounted方法在执行的时候,生命周期完全不按照应有的逻辑顺序来。相反,每一次在路有种push了新的url之后,无论怎样都会重新执行Create方法,然后再执行Mounted,这就出现了一个非常影响用户体验度的问题:当用户在一个页面中选择了某个数据之后,通过标签,切换到另外一个页面,当重新点击之..._vue create未加载完就进入页面

作为新手程序员,掉过的那些坑!-程序员宅基地

文章浏览阅读101次。不要掉入大多数开发人员都踩过的坑。作者 |Daan译者 |弯月,责编 | 屠敏以下为译文:英国作家奥斯卡·王尔德曾说过,人们给自己犯过的错误取名叫做经验。因此,可想而...

21道 Redis 常见面试题,必须掌握!-程序员宅基地

文章浏览阅读111次。作者:菜鸟小于cnblogs.com/Young111/p/11518346.html1.什么是redis?Redis 是一个基于内存的高性能key-value数据库。2.Reids的特..._redis 面试题rof

windows server 2008 R2中IIS FTP安装部署_windows server 2008 r2搭建ftp服务器完整设置-程序员宅基地

文章浏览阅读2.2k次,点赞4次,收藏7次。登陆系统,进入开始——》管理工具——》服务器管理选中“角色”——》“ 添加角色”在“添加角色向导”中操作注:在这里会等待1到5分钟不等。添加角色完毕。4. 进入IIS界面1) 服务器管理器——》角色——》web服务器(IIS)——》Internet 信息服务(IIS),点击进入2) 开始——》管理工具——》Internet 信息服务(IIS)管理器,点击进入创建f..._windows server 2008 r2搭建ftp服务器完整设置

随便推点

java开发C语言编译器:JVM 的基本操作指令介绍及其程序运行原理_jvm和c语言-程序员宅基地

文章浏览阅读1.2k次。本文介绍了java虚拟机所能运行的基础指令,同时讲解了虚拟机是如何基于堆栈和队列配合相关基础指令,运行字节码程序的。最后我们给出了一段C语言代码,并详细讲解了我们的编译器如何把代码编译成能在java虚拟机上执行的java汇编语言_jvm和c语言

图像算法:Difference of Gaussian(DOG) 高斯函数差分-程序员宅基地

文章浏览阅读2.5w次,点赞17次,收藏103次。概念Difference of Gaussian(DOG)是高斯函数的差分。它是可以通过将图像与高斯函数进行卷积得到一幅图像的低通滤波结果,即去噪过程,这里的Gaussian和高斯低通滤波器的高斯一样,是一个函数,即为正态分布函数。同时,它对高斯拉普拉斯LoG的近似,在某一尺度上的特征检测可以通过对两个相邻高斯尺度空间的图像相减,得到DoG的响应值图像。基本理论首先,高斯函数..._difference of gaussian

数据库学习笔记第一弹——MySQL8.0和MySQL5.7的下载、安装与配置(图文详解步骤2022)-程序员宅基地

文章浏览阅读1k次,点赞10次,收藏9次。数据库学习笔记第一弹——MySQL8.0和MySQL5.7的下载、安装与配置

C语言枚举类 口袋中有红、黄、蓝、白、黑5种颜色的球若干个_利用枚举类型编写程序:口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋-程序员宅基地

文章浏览阅读3.2k次。口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况#include<stdio.h>int main(){ enum Color {red, yellow, blue, white, black};//枚举类声明,分别对应0,1,2,3,4 enum Color i, j, k, pri..._利用枚举类型编写程序:口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋

php 心跳检测,Swoole 实例四(心跳检测)-程序员宅基地

文章浏览阅读1k次。服务器端 server.php

windows学习历程-IPC之互斥对象_windows ipc 互斥锁-程序员宅基地

文章浏览阅读458次。利用互斥对象实现线程的互斥对于互斥对象的操作包括:(1)创建互斥对象(CreateMutex)CreateMutex函数功能: 创建互斥量来确保一个线程独占对一个资源的访问。互斥量对象包含一个使用计数、线程ID以及一个递归计数。线程ID用来标识当前占用这个互斥量的是系统中的那个线程,递归计数表示这个线程占用该互斥量的次数。互斥量可以确保正在访问内存块中的任何线程会独占对_windows ipc 互斥锁

推荐文章

热门文章

相关标签