纵表转横表

create table Score
(
Name nvarchar(128),
Class nvarchar(128),
score int
)
insert into Score(Name, Class, score)values('张三','语文',98)
insert into Score values('张三','语文',98)
insert into Score values('张三','数学',89)
insert into Score values('张三','物理',78)
insert into Score values('李四','语文',79)
insert into Score values('李四','数学',88)
insert into Score values('李四','物理',100) select * from Score select t.Name,
SUM(case t.Class when '语文' then t.score else 0 end) as 语文,
SUM(case t.Class when '数学' then t.score else 0 end) as 数学,
SUM(case t.Class when '物理' then t.score else 0 end) as 物理,
SUM(case t.Class when '外语' then t.score else 0 end) as 外语,
SUM(case t.Class when '政治' then t.score else 0 end) as 政治,
SUM(case t.Class when '体育' then t.score else 0 end) as 体育
from Score as t
group by t.Name

横表转纵表

-- 转换的表插入新表
select t.Name,
SUM(case t.Class when '语文' then t.score else 0 end) as 语文,
SUM(case t.Class when '数学' then t.score else 0 end) as 数学,
SUM(case t.Class when '物理' then t.score else 0 end) as 物理
into ScoreHb
from Score as t
group by t.Name select * from dbo.ScoreHb -- union all链接3个科目
select t.Name,
'语文' as Class,
t.语文 as score
from ScoreHb as t
union all
select t.Name,
'数学' as Class,
t.数学 as score
from ScoreHb as t
union all
select t.Name,
'物理' as Class,
t.物理 as score
from ScoreHb as t
order by t.Name desc

pivot纵表转横表

select
t2.Name,
t2.数学,
t2.物理,
t2.语文
from Score as t1
pivot (sum(score) for Class in(数学,语文,物理)) as t2

unpivot 横表转纵表

 select
*
from
ScoreHb
unpivot (分数 for 课程 in (语文,数学,物理)) as t4

sqlserver 纵横的更多相关文章

  1. sqlServer数据库纵横表相互转化

    sqlServer  数据库纵横表相互转化 一.纵表转横表: 1.纵表: 2.横表: 3. 代码: select Name as '姓名', end) as '语文', end) as '数学', e ...

  2. 01.SQLServer性能优化之----强大的文件组----分盘存储

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...

  3. 03.SQLServer性能优化之---存储优化系列

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概  述:http://www.cnblogs.com/dunitian/p/60413 ...

  4. SQLSERVER将一个文件组的数据移动到另一个文件组

    SQLSERVER将一个文件组的数据移动到另一个文件组 有经验的大侠可以直接忽视这篇文章~ 这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验 今天求助了QQ群里 ...

  5. SQLSERVER走起微信公众帐号已经开通搜狗微信搜索

    SQLSERVER走起微信公众帐号已经开通搜狗微信搜索 请打开下面链接 http://weixin.sogou.com/gzh?openid=oIWsFt-hiIb_oYqQHaBMoNwRB2wM ...

  6. SQLSERVER走起 APP隆重推出

    SQLSERVER走起 APP隆重推出 为方便大家查看本微信公众以前推送的文章,QQ群里面的某位SQLSERVER重度爱好者开发了<SQLSERVER走起>的APP 以供大家一起交流 网页 ...

  7. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  8. SQLSERVER走起微信公众帐号全新改版 全新首页

    SQLSERVER走起微信公众帐号全新改版 全新首页 今天,SQLSERVER走起微信公众帐号增加了首页功能 虽然还是订阅号,不过已经对版面做了比较大的修改,希望各位亲用得放心.用得安心O(∩_∩)O ...

  9. 记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题

    最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerP ...

随机推荐

  1. VMware+Fedora20+secureCRT7.0配置心得

    VMware10 XX版 下载地址 secureCRT7 XX版 下载地址 做好安装等准备工作,打开Fedora虚拟机: 首先.安装openssh-server yum install openssh ...

  2. oracle空间管理

    表空间:组织数据文件的一种途径,  是一个逻辑概念  包含有 表,字段,索引 一个数据库可以对应多个表空间 一个物理文件对应一个表空间 任何一个数据库创建的第一一个表空间是 system Tables ...

  3. WordPress模板常用函数

    基本条件判断Tag is_home() : 是否为主页 is_single() : 是否为内容页(Post) is_page() : 是否为内容页(Page) is_category() : 是否为C ...

  4. 任务中使用wget,不保存文件

    */20 * * * * wget --output-document=/dev/null http://www.domain.com 使用wget每过20分钟访问一次,不保存访问文件内容

  5. css3学习----transform

    css 2D转换

  6. JS小游戏-蓝色拼图

    // a[href=#viewSource]"); //查看源代码标签 viewSourceArr.attr("title", "查看源代码"); v ...

  7. How to generate ssh key only for github and not conflict with original key

    3 生成SSH公钥 $ ssh-keygen -t rsa -C "your_email@youremail.com"  #ssh-keygen -t dsa -C "y ...

  8. DHCP Set Hostname

    参考: FreeBSD DHCP Set Hostname ( Empty Hostname After Reboot ) -- http://www.cyberciti.biz/faq/freebs ...

  9. 【C++】类型转换(学习笔记)

    1. 隐式类型转换,相关联的类型(e.g.int vs double)之间可以发生隐式类型转换. 比如,在条件中,非布尔类型转为布尔类型: 初始化时,初始值变为变量类型: 赋值时,右值变成左侧的类型: ...

  10. video和audio

    1.video 使用: <video width="320" height="240" src="http://www.jb51.net/mov ...