一、行转列

1、测试数据准备

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

执行结果:

mysql 列转行 unpivot_sql的行转列(PIVOT)与列转行(UNPIVOT)相关推荐

  1. mysql 列转行 unpivot_SQL 之列转行Unpivot函数

    这是总结SQL知识点的第二篇文章,一次只总结一个知识点,尽量说明白.上次我们谈到行转列,用的是Pivot函数,这次我们来谈谈Unpivot函数.(这里是用的数据库是SQLSERVER,与其他数据库是类 ...

  2. mysql 列转行 unpivot_SQL知识点之列转行Unpivot函数

    前言 这是总结SQL知识点的第二篇文章,一次只总结一个知识点,尽量说明白.上次我们谈到行转列,用的是Pivot函数,这次我们来谈谈Unpivot函数.(这里是用的数据库是SQLSERVER,与其他数据 ...

  3. SQL Server 行转列,列转行。多行转成一列

    一.多行转成一列(并以","隔开) 表名:A 表数据: 想要的查询结果: 查询语句: SELECT name ,value = ( STUFF(( SELECT ',' + val ...

  4. oracle unpivot 索引_Oracle 行转列pivot 、列转行unpivot 的Sql语句总结

    这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str from ap ...

  5. Mysql框架<二> 行式存储与列式存储

    文章目录 数据处理场景分类 OLTP 联机事务处理 OLAP 联机分析处理 行式存储和列式存储 概念 特点 对比 数据处理场景分类 OLTP 联机事务处理 OLTP : on-line transac ...

  6. oracle 行转列的sql,Oracle行转列、列转行的Sql语句总结

    目录结构如下: 行转列 列转行 [一].行转列 1.1.初始测试数据 表结构:TEST_TB_GRADE sql代码 create table TEST_TB_GRADE ( ID NUMBER(10 ...

  7. unpivot用法 oracle10g,Oracle 行转列pivot 、列转行unpivot 的Sql语句总结(转)

    多行转字符串 这个比较简单,用||或concat函数可以实现 1 select concat(id,username) str from app_user 2 3 select id||usernam ...

  8. 周末杂谈:在MYSQL中,添加数据行后,使用右外连接查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,表中没有的课程列值为空的解决方法

    周末杂谈:在MYSQL中,添加数据行后,使用右外连接查询所有课程的选修情况,要求列出课程编号.课程名称.选修人数,表中没有的课程列值为空的解决方法 实验前期准备 course表(课程表) 在其中: c ...

  9. Mysql来帮忙:多行合并成一列

    先还是来说下业务场景 现在有个业务需求,需要根据父类ID(pid),分别找出3条最新的数据展示出来. 如果使用group by发现每个只能显示一条. 那么怎么办? 接下来就是解决现场. 解决 解决思路 ...

最新文章

  1. AWS ML deploy platform
  2. 《高性能javascript》 领悟随笔之-------DOM编程篇(二)
  3. 波卡链Substrate (1)生态介绍
  4. java jar包详解_Jar打包用法详解
  5. Hadoop/Spark相关面试问题总结
  6. 安卓期末作品小项目_每日一个财务小知识——洞悉洞晰财务报告第一季
  7. C库函数 - strcspn()
  8. [渝粤教育] 中国地质大学 职业健康管理体系 复习题 (2)
  9. vm磁盘映射 不能启动_Oracle的启动与关闭-数据库(4)
  10. 西南科技大学研究生计算机,我们毕业啦……西南科技大学2020研究生毕业记!...
  11. c语言倒序输出单词_洛谷 || 单词覆盖还原(C语言)
  12. android strings.xml 特殊字符,android strings.xml 中的特殊字符转义
  13. 给Ubuntu 13.04换源 软件源、更新源
  14. sql studio索引超出了数组界限
  15. linux ps3手柄驱动,ps3 DS3 手柄驱动
  16. Java面试题(140多道高频面试题2022版)
  17. python自然语言_Python自然语言处理 - 随笔分类 - 牛皮糖NewPtone - 博客园
  18. Mybatis generator mapper文件重新生成不会覆盖原文件
  19. 深度丨边缘计算,星火燎原
  20. Win10新添实用功能,你发现了吗?

热门文章

  1. memmove函数的实现
  2. 电大计算机英语二,2013年考研英语二真题及答案解析.pdf
  3. java处理图片的所有类_JAVA处理图片常用公共类
  4. Unity3d(PlayerPrefs 类的介绍与使用)
  5. elasticsearch之Terms Aggregation
  6. 第一阶段C++基础语法入门(最详细笔记)
  7. Oracle18c show pdbs 命令的使用.
  8. 常州85后女刑警陈露:10年练就火眼让蛛丝马迹“开口”
  9. 在VUE项目中使用SCSS ,对SCSS的理解和使用(简单明了)
  10. JFrame登录注册