首页 |缤纷校园 |心理援助 |英语世界 |公务员 |考研天地 |资格考试 |电脑认证 |免费论文 |实用文档 |求职就业 |论坛 |网络课堂 |留言版
 电脑认证首页     考试专题 考试提醒 计算机等级考试 计算机认证水平考试 IT认证 论坛
 最近更新
· [计算机专题]讲解数据库中行级转换成列…
· [学习辅导]在SQLServer2005中用语句创…
· [学习辅导]建立Java编程网络管理应用…
· [计算机专题]Windows操作系统网络管理技…
· [学习辅导]拓扑感知型的集成式网络和…
· [学习辅导]细心分析网络存在的安全隐…
· [学习辅导]谁想改我的WindowsVista桌…
· [学习辅导]恢复VistaSP1系统恢复光盘…
· [计算机专题]远程管理Windows服务器实用…
· [试题下载]计算机考试一级考试最新模…
 精品课程
· [精品课程推荐]08年投资项目管理师考…
· [精品课程推荐]08年职称日语考试辅导…
· [精品课程推荐]08年环境影响评价师辅…
· [精品课程推荐]08年质量资格考试辅导…
· [精品课程推荐]08年会计职称辅导报精…
· [精品课程推荐]08年建筑师考试辅导京…
· [精品课程推荐]08职称英语考试辅导王…
· [精品课程推荐]08年咨询工程师考试名…
· [精品课程推荐]08年监理工程师考试辅…
· [精品课程推荐]经济师考试网上辅导报…
 考试动态
· [二级考试动态]2008年计算机等级考试时间…
· [二级考试动态]上海:2008年上半年全国计…
· [二级考试动态]北京:2007年9月计算机等级…
· [二级考试动态]2007年12月全国计算机职业…
· [二级考试动态]青岛:2008年上半年计算机…
· [二级考试动态]宁夏:2007年9月计算机等级…
· [二级考试动态]北京地区计算机等级考试10…
· [二级考试动态]北京:07年下半年计算机等…
· [二级考试动态]2008年4月全国计算机等级考…
· [二级考试动态]2007年下半年计算机等级考…
 试题下载
· [试题下载]2007年计算机等级考试二级…
· [试题下载]2007年9月计算机等级考试二…
· [试题下载]2007年9月二级VB试题答案
· [试题下载]2007年9月计算机二级VB模拟…
· [试题下载]2007年9月计算机二级VB模拟…
· [试题下载]2007年9月计算机二级VF模拟…
· [试题下载]2007年9月计算机二级VB模拟…
· [试题下载]2007年9月计算机等级考试二…
· [试题下载]VC++中利用/GS开关防止缓冲…
· [试题下载]2007年4月计算机等级考试二…
 学习辅导
· [学习辅导]在SQLServer2005中用语句创…
· [学习辅导]MoreEffectiveC++:指针与…
· [学习辅导]MoreEffectiveC++:不使用…
· [学习辅导]Linux下C++异常处理技巧--…
· [学习辅导]如何使编译后的程序运行时…
· [学习辅导]2007年计算机二级VF编辑
· [学习辅导]2007年C语言辅导:可移植性
· [学习辅导]2007年制作风格独特的按钮
· [学习辅导]2007年VFP中使用Grid控件设…
· [学习辅导]MoreEffectiveC++之考虑变…
 

讲解数据库中行级转换成列级的实际应用

文章录入:admin    责任编辑:admin   2008-3-26 16:30:22  来源:考资网  点击数:
 

  首先,我们需要建立一个表,详细内容请参考下文:

create table score
(
   Name    varchar(10),
   Subject varchar(10),
   Result int
)
go
 
-- Insert some data to score table
insert into score(Name , Subject , Result) values('Jason' , 'Chinese' , 74)
insert into score(Name , Subject , Result) values('Jason' , 'Math' , 83)
insert into score(Name , Subject , Result) values('Jason' , 'Physic' , 93)
insert into score(Name , Subject , Result) values('Bosco' , 'Chinese' , 74)
insert into score(Name , Subject , Result) values('Bosco' , 'Math' , 84)
insert into score(Name , Subject , Result) values('Bosco' , 'Physic' , 94)
go
 
-- useing PIVOT operator
SELECT * FROM
(    
    select Name,Subject,Result from score
) as X
PIVOT
(    
   Sum(Result) FOR Subject IN ([Chinese],[Math],[Physic])
) AS PVT
 
-- useing static SQL. There only are [Chinese],
[Math],[Physic] values in subject field
select Name,
 sum(case Subject when 'Chinese' then Result else 0 end) as [Chinese],
 sum(case Subject when 'Math' then Result else 0 end) as [Math],
 sum(case Subject when 'Physic' then Result else 0 end) as [Physic]
from score
group by Name
 
-- useing dynamic SQL. There may be some other 
values in subject field,don't limited to [Chinese],[Math],[Physic]
declare @sql varchar(2000)
set @sql = 'select Name'
select @sql = @sql + ', sum(case Subject when 
''' + Subject + ''' then Result else 0 end) [' + Subject + ']'
from (select distinct Subject from score) as X
set @sql = @sql + ' from score group by Name'
exec(@sql)

  • 上一个文章:

  • 下一个文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    关于本站 - 广告服务 - 站内导航 - 网站声明 - 友情链接 - 联系我们
    Copyright©2003-2008 www.dastu.com, All Rights Reserved.

    心语心愿科技(北京)有限责任公司 版权所有

    鄂ICP备05000022号