with  a as (
select 日期,学号,名字, '语文' as 科目,语文 as 分数
from tsco
union all
select 日期,学号,名字, '数学' as 科目,数学 as 分数
from tsco
union all
select 日期,学号,名字, '英语' as 科目,英语 as 分数
from tsco
)
select 学号,名字,科目,
max(case when 日期='2014/10/1' then 分数 end) as '2014/10/1' ,
max(case when 日期='2014/11/1' then 分数 end) as '2014/11/1' ,
max(case when 日期='2014/12/1' then 分数 end) as '2014/12/1'
from a
group by 学号,名字,科目

以上写的不对的地方多多指教

以下是高手写的:

if OBJECT_ID('数据') is not null drop table 数据

create table 数据(日期 varchar(10),
学号 varchar(5),
名字 varchar(4),
语文 numeric(3,0),
数学 numeric(3,0),
英语 numeric(3,0))
insert into 数据 select '2014/10/1',1,'甲',98,80,60
insert into 数据 select '2014/10/1',2,'甲',100,40,70
insert into 数据 select '2014/10/1',3,'丙',50,20,100
insert into 数据 select '2014/11/1',1,'甲',90,80,60
go
declare @i varchar(8000),@j as varchar(8000)
set @i=''
set @j=''
select @i=@i+',['+日期+']' from 数据 group by 日期
select @j='select *
from (select 日期,学号,名字,语文 as 成绩,''语文'' as 科目 from 数据 union all
select 日期,学号,名字, 数学 as 成绩,''数学'' as 科目 from 数据 union all
select 日期,学号,名字, 英语 as 成绩,''英文'' as 科目 from 数据) as bb
pivot (sum(成绩) for 日期 in ('+stuff(@i,1,1,'')+')) as bb' exec(@j)

SQLServer2008 行转列3的更多相关文章

  1. SQLServer2008 行转列2

    with a as ( select numb,name,row_number() over( partition by numb order by name desc) rowid from fen ...

  2. SQLServer2008 行转列

    with a as( select *,row_number() over(partition by hyid order by jp desc) rowid from rtc) select a.h ...

  3. SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...

  4. T-SQL 实现行转列

    问题: 我正在寻找一种有效的方式将行转换为SQL服务器中的列 例如,通过下表如何构建出预期结果表. Id  Value   ColumnName 1   John    FirstName 2   2 ...

  5. Oracle行转列、列转行的Sql语句总结

    多行转字符串 这个比较简单,用||或concat函数可以实现  SQL Code  12    select concat(id,username) str from app_userselect i ...

  6. sql的行转列(PIVOT)与列转行(UNPIVOT)

    在做数据统计的时候,行转列,列转行是经常碰到的问题.case when方式太麻烦了,而且可扩展性不强,可以使用 PIVOT,UNPIVOT比较快速实现行转列,列转行,而且可扩展性强 一.行转列 1.测 ...

  7. 做图表统计你需要掌握SQL Server 行转列和列转行

    说在前面 做一个数据统计和分析的项目,每天面对着各种数据,经过存储过程从源表计算汇总后需要写入中间结果表以提高数据使用效率,那么此时就需要用到行转列和列转行. 1.列转行 数据经过计算加工后会直接生成 ...

  8. SQL SERVER特殊行转列案列一则

    今天有个同事找我,他说他有个需求,需要进行行转列,但是又跟一般的行转列有些区别,具体需求如下所说,需要将表1的数据转换为表2的显示格式. 我想了一下,给出了一个解决方法,具体如下所示(先给出测试数据) ...

  9. SQL Server中使用PIVOT行转列

    使用PIVOT行转列 1.建表及插入数据 USE [AdventureDB] GO /****** Object: Table [dbo].[Score] Script Date: 11/25/201 ...

随机推荐

  1. Leetcode#87 Scramble String

    原题地址 两个字符串满足什么条件才称得上是scramble的呢? 如果s1和s2的长度等于1,显然只有s1=s2时才是scramble关系. 如果s1和s2的长度大于1,那么就对s1和s2进行分割,划 ...

  2. Deep Learning: Assuming a deep neural network is properly regulated, can adding more layers actually make the performance degrade?

    Deep Learning: Assuming a deep neural network is properly regulated, can adding more layers actually ...

  3. HDU1014Uniform Generator

    Uniform Generator Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   ...

  4. Samy XSS Worm之源码讲解

    说到Web安全和XSS跨站脚本技术,几乎所有的书都会提到Samy Worm,这是在2005年感染了mySpace社交网络上百万用户的蠕虫.正如Morris蠕虫是互联网第一个蠕虫, Samy Worm则 ...

  5. Yarn的服务库和事件库

    对于生命周期较长的对象,YARN采用了基于服务对象管理模型对其进行管理. 该模型有一下特点: 每个被服务化的对象都分为4个状态 任何服务状态变化都可以触发另外一些动作 可以通过组合方式对任意服务进行组 ...

  6. win7修改hosts文件方法

    因权限的关系,导致无法修改,解决如下: hosts属性 --> 安全 --> 编辑权限 --> 完全控制,就可以修改该文件了.win7默认不能修改hosts文件.

  7. POJ 3696 The Luckiest number (欧拉函数,好题)

    该题没思路,参考了网上各种题解.... 注意到凡是那种11111..... 22222..... 33333.....之类的序列都可用这个式子来表示:k*(10^x-1)/9进而简化:8 * (10^ ...

  8. UITextField输入中文限制

      [self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEve ...

  9. 历代诗词咏宁夏注释3----蔡升元:<题大清渠>

    题大清渠 蔡升元 为怜□□□□□,□□□□□□□. □□□□沙碛里,凿开峡口贺兰旁. 支分九堡通沟浍,鼎峙三渠并汉唐. 作吏尽如君任事,不难到处乐丰穰. 两渠中划大清渠,畚筑无劳民力纾.[1] 心画万 ...

  10. Mime Types

    Mime Types 1.http://www.freeformatter.com/mime-types-list.html 2.http://www.webmaster-toolkit.com/mi ...