技术标签: 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
2、行转列sql
SELECT * FROM [StudentScores] /*数据源*/
AS P
PIVOT
(
SUM(Score/*行转列后 列的值*/) FOR
p.Subject/*需要行转列的列*/ IN ([语文],[数学],[英语],[生物]/*列的值*/)
) AS T
执行结果:
二、列转行
1、测试数据准备
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
2、列转行的sql
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
执行结果:
sql的行转列(PIVOT)与列转行(UNPIVOT)
标签:toolbar nat 国内 sub img for 方式 生物 tde
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:https://www.cnblogs.com/linjincheng/p/9988392.html
文章浏览阅读237次。一个对象中的属性有布尔类型时,命名的时候尽量不要把前缀定为is,因为在使用HQL查询的时候,属性必须去掉is前缀,然后小写首字母才能查询出结果,否则查询不到任何数据;例如,有一个User对象,里面有一个标识这个用户是否激活的属性,然后将其命名为isActivated,在查询的时候,根据HQL的规则,使用 user.isActivated = true去查询,将得到错误的提示:isActivat..._hibernate不能包含is
文章浏览阅读226次。MapReduce: 超大机群上的简单数据处理 ..._for v in values: result += v
文章浏览阅读960次。写在前面的 最近在IIS发布了我们的项目之后发现,原本写在代码中的Create方法与Mounted方法在执行的时候,生命周期完全不按照应有的逻辑顺序来。相反,每一次在路有种push了新的url之后,无论怎样都会重新执行Create方法,然后再执行Mounted,这就出现了一个非常影响用户体验度的问题:当用户在一个页面中选择了某个数据之后,通过标签,切换到另外一个页面,当重新点击之..._vue create未加载完就进入页面
文章浏览阅读101次。不要掉入大多数开发人员都踩过的坑。作者 |Daan译者 |弯月,责编 | 屠敏以下为译文:英国作家奥斯卡·王尔德曾说过,人们给自己犯过的错误取名叫做经验。因此,可想而...
文章浏览阅读111次。作者:菜鸟小于cnblogs.com/Young111/p/11518346.html1.什么是redis?Redis 是一个基于内存的高性能key-value数据库。2.Reids的特..._redis 面试题rof
文章浏览阅读2.2k次,点赞4次,收藏7次。登陆系统,进入开始——》管理工具——》服务器管理选中“角色”——》“ 添加角色”在“添加角色向导”中操作注:在这里会等待1到5分钟不等。添加角色完毕。4. 进入IIS界面1) 服务器管理器——》角色——》web服务器(IIS)——》Internet 信息服务(IIS),点击进入2) 开始——》管理工具——》Internet 信息服务(IIS)管理器,点击进入创建f..._windows server 2008 r2搭建ftp服务器完整设置
文章浏览阅读1.2k次。本文介绍了java虚拟机所能运行的基础指令,同时讲解了虚拟机是如何基于堆栈和队列配合相关基础指令,运行字节码程序的。最后我们给出了一段C语言代码,并详细讲解了我们的编译器如何把代码编译成能在java虚拟机上执行的java汇编语言_jvm和c语言
文章浏览阅读2.5w次,点赞17次,收藏103次。概念Difference of Gaussian(DOG)是高斯函数的差分。它是可以通过将图像与高斯函数进行卷积得到一幅图像的低通滤波结果,即去噪过程,这里的Gaussian和高斯低通滤波器的高斯一样,是一个函数,即为正态分布函数。同时,它对高斯拉普拉斯LoG的近似,在某一尺度上的特征检测可以通过对两个相邻高斯尺度空间的图像相减,得到DoG的响应值图像。基本理论首先,高斯函数..._difference of gaussian
文章浏览阅读1k次,点赞10次,收藏9次。数据库学习笔记第一弹——MySQL8.0和MySQL5.7的下载、安装与配置
文章浏览阅读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种颜色的球若干个。每次从口袋
文章浏览阅读1k次。服务器端 server.php
文章浏览阅读458次。利用互斥对象实现线程的互斥对于互斥对象的操作包括:(1)创建互斥对象(CreateMutex)CreateMutex函数功能: 创建互斥量来确保一个线程独占对一个资源的访问。互斥量对象包含一个使用计数、线程ID以及一个递归计数。线程ID用来标识当前占用这个互斥量的是系统中的那个线程,递归计数表示这个线程占用该互斥量的次数。互斥量可以确保正在访问内存块中的任何线程会独占对_windows ipc 互斥锁