Sql行转列,sql语句如何实现行转列,SQL行转列、列转行的简单实现

Sql行转列,sql语句如何实现行转列,SQL行转列、列转行的简单实现

本文主要介绍SQL行到列和列到列转换的简单实现方法。通过示例代码详细介绍,对大家学习或使用SQL有一定的参考价值。需要朋友就一起学吧。

前言

行列转换是报表分析中经常遇到的问题。今天就来说说如何实现行列转换。

行列转换是两种显示形式的相互转换,如下图所示。

行转列

假设我们有下表:

选择*

来自学生

枢轴(

(语文、数学、英语)科目的总分

)

上面SQL语句可以获得以下结果。

PIVOT后面跟一个聚合函数得到结果,后面跟FOR的科目就是我们要转换的列,这样科目中的语文、数学、英语就转换成列了。IN后面是特定的主题值。

当然,用CASE WHEN也可以得到同样的结果,写起来稍微麻烦一点。

选择名称,

最大(

情况

当主题='语言'

然后得分

否则0

END)作为“语言”,

最大(

情况

当科目='数学'

然后得分

否则0

END)为‘数学’,

最大(

情况

当subject=' English '

然后得分

否则0

END)为“英语”

来自学生

按名称分组

使用CASE WHEN可以得到和PIVOT一样的结果,不如PIVOT简单直观。

列转行

假设我们有下面的表student1。

选择*

来自学生1

取消透视(

科目分数(“语文”、“数学”、“英语”)

)

通过UNPIVOT可以获得以下结果:

我们也可以用下面的方法得到同样的结果。

挑选

姓名,

“中文”作为主语,

分数最高('中文')

来自学生1按姓名分组

联盟

挑选

姓名,

数学作为一门学科,

最高分数('数学')

来自学生1按姓名分组

联盟

挑选

姓名,

“英语”作为主题,

最高分('英语')

来自学生1按姓名分组

总结

这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。谢谢你的支持。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序
  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序,使用SQL语句实现查询排序,顺序和倒序
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题,一篇文章带你入门SQL编程
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053,windows无法启动MySQL服务报错1067的解决方法
  • vb中adodb连接数据库,,VB语言使用ADO连接、操作SQLServer数据库教程
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句,SQL重复记录查询的几种方法
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图,SQL语句的各个关键字的解析过程详细总结
  • sql语句游标,sqlserver游标的使用
  • sql语句游标,sqlserver游标的使用,详解SQL游标的用法
  • 留言与评论(共有 条评论)
       
    验证码: