1.建表:学生表(姓名,学科,成绩)

CREATE TABLE teststudent(
    stuname varchar(50) NULL,
    subjects varchar(50) NULL,
    source int NULL
)
drop table teststudent ;
select * from teststudent ;
delete from teststudent ;

2.准备数据:

insert into teststudent(stuname,subjects,source) values('小明','语文',80); 
insert into teststudent(stuname,subjects,source) values('小明','数学',85); 
insert into teststudent(stuname,subjects,source) values('小明','英语',90); 
insert into teststudent(stuname,subjects,source) values('小红','语文',86); 
insert into teststudent(stuname,subjects,source) values('小红','数学',90); 
insert into teststudent(stuname,subjects,source) values('小红','英语',85); 
insert into teststudent(stuname,subjects,source) values('小亮','语文',99); 
insert into teststudent(stuname,subjects,source) values('小亮','数学',99); 
insert into teststudent(stuname,subjects,source) values('小亮','英语',100);

3.转换:可以采用max()、sum()两种方式

--方式1:
select stuname ,
MAX(case when subjects = '语文' then source else 0 end ) '语文',
MAX(case when subjects = '数学' then source else 0 end ) '数学',
MAX(case when subjects = '英语' then source else 0 end ) '英语'
from teststudent group by stuname ;

--方式2:
select stuname ,
    SUM(case when subjects = '语文' then source else 0 end) '语文',
    SUM(case when subjects = '数学' then source else 0 end ) '数学',
    SUM(case when subjects = '英语' then source else 0 end ) '英语'
from teststudent group by stuname ;

sqlServer:行列转换之多行转一行的更多相关文章

  1. sqlserver行列转换

    sqlserver行转列 --创建行转列表及插入数据 create table tb_RowConvertToColumn ( username ) null, course ) null, scor ...

  2. sqlserver行列转换问题(网上搜集)

    (列->行) 一.FOR XML PATH 简单介绍              那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如 ...

  3. sqlserver 行列转换

    http://www.cnblogs.com/zhangzt/archive/2010/07/29/1787825.html PIVOT用于将列值旋转为列名(即行转列),在SQL Server 200 ...

  4. SQLServer行列转换PIVOT函数中聚合函数的使用意义及选择

    例子:https://blog.csdn.net/wikey_zhang/article/details/76849826 DECLARE @limitDay INT;SET @limitDay = ...

  5. [转载]SQL Server行列转换实现

    可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_ ...

  6. Hive行列转换

    Hive行列转换   1.行转列 (根据主键,进行多行合并一列) 使用函数:concat_ws(‘,’,collect_set(column))  collect_list 不去重 collect_s ...

  7. PowerBI/Excel - PowerQuery数据转换系列 - 如何将多行的值串联到一行 - 行列转换

    Power Query 是做数据转换.数据清洗的利器,不管是在Excel还是PowerBI,如何玩好Power Query是成功建模的必不可少的一步. 今天要get到的一个新技巧:行列转换 如何将多行 ...

  8. 在Sqlserver下巧用行列转换日期的数据统计

    在Sqlserver下巧用行列转换日期的数据统计 前言 在SQLSERVER 中有很多统计函数的基础语法,有使用Group By 或 partition by 后配合Sum,Count(*) 等用法. ...

  9. sqlserver表分区与调优与行列转换

    转自: http://www.cnblogs.com/knowledgesea/p/3696912.html http://www.open-open.com/lib/view/open1418462 ...

随机推荐

  1. PC逆向之代码还原技术,第五讲汇编中乘法的代码还原

    目录 PC逆向之代码还原技术,第五讲汇编中乘法的代码还原 一丶简介乘法指令 1.乘法指令 2.代码还原注意问题 二丶乘法的汇编代码产生的格式 1.高级代码观看 2.乘法的汇编代码还原. 三丶乘法总结 ...

  2. 阿里云HBase携X-Pack再进化,重新赋能轻量级大数据平台

    一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...

  3. Docker系列08—搭建使用私有docker registry

    本文收录在容器技术学习系列文章总目录 1.了解Docker Registry 1.1 介绍 registry 用于保存docker 镜像,包括镜像的层次结构和元数据. 启动容器时,docker dae ...

  4. JDBC设计理念浅析 JDBC简介(一)

    概念 JDBC是J2EE的标准规范之一,J2EE就是为了规范JAVA解决企业级应用开发制定的一系列规范,JDBC也不例外. JDBC是用于Java编程语言和数据库之间的数据库无关连接的标准Java A ...

  5. 如何正确使用Java泛型

    前言 Java 1.5之前是没有泛型的,以前从集合中读取每个对象都必须先进行转换,如果不小心存入集合中对象类型是错的,运行过程中转换处理会报错.有了泛型之后编译器会自动帮助转换,使程序更加安全,但是要 ...

  6. win2008R2环境配置

    1)下载系统  [https://msdn.itellyou.cn/]  选择带sp1的,这个系统是08R2中较为完善的一种 2)安装之后首先不要激活和安装.net framework   先安装ii ...

  7. C#图片裁切,生成新图片

    /// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png 新图1_new.png /// </summary> /// <param name="pic ...

  8. PHP代码片段

    将数组拼接为 table 标签字符串 <?php //判断是否是图片 function isImage($string){ $isImage = false; $pics = ['.png', ...

  9. 深入了解浏览器存储:对比Cookie、LocalStorage、sessionStorage与IndexedDB

    摘要: 对比Cookie.LocalStorage.sessionStorage与IndexedDB 作者:浪里行舟 Fundebug经授权转载,版权归原作者所有. 前言 随着移动网络的发展与演化,我 ...

  10. iOS----------禁止输入汉字

    说明: ^.*[\u4e00-\u9fa5].*$ 是否包含中文^[\u4E00-\u9FA5]+$ 是否全中文 - (BOOL)textField:(UITextField *)textField ...