SQL 列转行的实现
来源:互联网 发布:flv转mp4 mac 编辑:程序博客网 时间:2024/05/23 01:57
-- =============================================
-- Author: 特工绍特
-- Create date: 9月19日
-- Description: SQL列转行的实现,列外扩展了一下求和
-- QQ:707891607 欢迎大家来一起交流
-- =============================================
create table #test
(
id int primary key identity(1,1),
name varchar(20),
subject varchar(20),
source int
)
insert into #test
select '张三','数学','85' union all
select '张三','语文','45' union all
select '张三','英语','80' union all
select '李四','语文','55' union all
select '李四','数学','60' union all
select '王五','数学','65' union all
select '王五','英语','70'
select * from #test
--结果
--id name subject source
------------- -------------------- -------------------- -----------
--1 张三 数学 85
--2 张三 语文 45
--3 张三 英语 80
--4 李四 语文 55
--5 李四 数学 60
--6 王五 数学 65
--7 王五 英语 70
select name
,sum(case subject when '数学' then source else 0 end)as '数学'
,sum(case subject when '语文' then source else 0 end)as '语文'
,sum(case subject when '英语' then source else 0 end)as '英语'
,sum(source)as '总分'
from #test group by name
union all
select null
,sum(case subject when '数学' then source else 0 end)as '数学'
,sum(case subject when '语文' then source else 0 end)as '语文'
,sum(case subject when '英语' then source else 0 end)as '英语'
,sum(source)
from #test
--结果
--name 数学 语文 英语 总分
---------------------- ----------- ----------- ----------- ----------
--李四 60 55 0 115
--王五 65 0 70 135
--张三 85 45 80 210
--NULL 210 100 150 460
- SQL 列转行的实现
- oracle数据库实现行转列和列转行的Sql语句
- 列转行一个sql能实现吗
- SQL Server 实现 行转列、列转行
- Sql Server使用游标实现列转行
- sql多方法实现列转行
- sql表关于列转行的做法
- 列转行的Oracle SQL实例
- sql中列转行的问题
- ORACLE 列转行和行转列的SQL
- Sql 行转列及列转行的使用
- SQL最便捷的列转行语句
- sql列转行
- sql列转行
- 列转行SQL
- sql列转行
- sql列转行
- SQL 列转行
- gnuplot使用笔记
- 求个师傅教我DNF的G这么用。。用哪个G好。有没有免费的!
- 读取图片
- 某网站SEO方案
- 为异常安全而努力 笔记
- SQL 列转行的实现
- Function Call Stack
- 来自一个高速交警的忠告,经常跑高速的一定要看一下
- 行者无疆——今天的极速86.4km/h
- LESSON 7 ATTACK ANALYSIS part IV
- 我开始写博客啦··
- 创建一个简单的string类
- 无悔
- 通过了PMP,心如止水