基于SQL Server交叉表查询的研究

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:iamfly2000
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要]公司和企业中经常要求对数据进行分类统计,通过交叉表查询可以实现此目的,使得显示效果清晰明了。本文主要在SQL Server中以学生成绩表为例研究了交叉表查询,实现对学生各门课程成绩的统计。
  [关键词] 交叉表查询,case-when语句, SQL Server
  中国分类号:TP311.1
  1引言
  现今数据库的应用非常广泛,SQLServer是微软公司开发的一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的关系型数据库管理系统,提供了基于事务的企业级信息管理系统方案。SQLServer在企业、政府部门及学校等管理系统中得到广泛的应用,在这些系统中经常要对数据进行分类统计,使得显示效果更加清晰,习惯使用交叉表查询显示结果。下面主要通过学校管理系统中学生成绩查询作为示例研究交叉表查询。
  2 交叉表查询
  2.1交叉表查询的概念和功能
  交叉表查询即在原有关系表的基础上,以行和列的字段作为标题和条件选取交叉表查询并在行与列的交叉处对数据进行汇总、统计等计算。
  例如:学生成绩表如图1,经过交叉表查询后的结果如图2,即以name(姓名)为行标题,以subject(课程)为列标题,行和列交叉处对source(成绩)数据进行汇总。从对图1和图2对比中,可以看出交叉表查询结果非常清晰。
  图1 图2
  2.2交叉表查询的分类
  交叉表查询一般分为静态和动态交叉表。静态交叉表就是交叉表中的列是预先设定好的,列数是一个确定的数值。如图2所示,语文、数学、英语三科的成绩放在学生成绩表,需要从学生成绩表得到每一个学生的语文、数学、英语三科的交叉成绩。动态交叉表即交叉表中的列是未知的或者列数比较多,不能通过静态交叉表的方法把所有列都罗列出来,此是就要使用动态交叉表的方法来实现。
  2.3交叉表查询的实现
  首先在SQLServer查询分析器中输入如下命令来建立一个学生选课程成绩表score 表,
  CREATE TABLE [score]
  ( [sno] [nchar](10) NULL ,
  [name] [nvarchar] (50) NULL ,
  [subject] [nvarchar] (50) NULL ,
  [Source] [numeric](15,0) NULL) ON [PRIMARY]
  Go
  通过INSERT语句给score表中插入如图1中的数据,例如插入第一条命令如下:
  INSERT INTO [score] ([sno],[name],[subject],[Source]) values ('1001','李燕','语文',60),其它数据的添加方法相同。
  静态交叉表查询的实现语句如下:
  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 '语文'
  from score
  group by name
  在上面查询语句中主要用到Case-when语句,其语法格式如下:
  CASE search_expression
  WHEN expression1 THEN result1,
  WHEN expression2 THEN result2
  ...
  WHEN expressionN THEN resultN
  ELSE default_result
  End
  search_expression是要搜索的表达式,要与when语句后的expression1、expression2…expressionN对比,假如search_expression与expression1值相等的,就返回result1,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
  添加汇总的动态交叉表查询语句如下:
  declare @sql varchar(4000)
  set @sql = 'select name,'
  select @sql = @sql + 'sum(case subject when '''+subject+'''
  then source else 0 end) as '''+subject+''','
  from (select distinct subject from score) as b
  select @sql = left(@sql,len(@sql)-1) +',sum(source) as 总成绩'
  +',convert(dec(5,1),avg(source))as 平均成绩'
  +' from score group by name'
  exec(@sql)
  其中len(@sql)-1的作用是求出字符串的长度减去一,因为在@sql字符串后有一个逗号,在使用left()函数取出去掉逗号的字符串。语句查询的结果如图3
  图3
  3结束语
  综上所述,SQL Server数据库中交叉表查询语句功能强大,查询结果清晰,本文主要通过简单的查询语句实现静态和动态交叉表查询,以后会进一步研究通过创建带参数的存储过程完成功能更加强大的交叉表查询的研究。
  参考文献:
  [1] 刘丽,潘志红.SQL Server 数据库基础教程[M].北京:機械工业出版,2011.
  [2] 李锡辉.SQL Server 2008 数据库案例教程[M].北京:清华大学出版社,2011.
  作者简介:
  张慧娥 1977年出生,讲师,主要研究方向数据库,软件工程。
  王晓迎 1963年出生,高级平面设计师,主要研究方向动漫设计。
其他文献
内容摘要:目前中小学音乐教师渴望解决的问题很多。这在很大程度上是由于音乐学科自身的系统性研究不够深透,学科体系不健全,盲目教学所致。对以往的教学改革进行梳理,对音乐教学科学定位,提出音乐教育的目标体系,有效地指导音乐教学的深层改革,是十分必要的。  关键词:素质能力 综合能力  中图分类号:G804.68  通过音乐文献的大量储备、欣赏名家名演、音乐知识的补充,能够提升学生在小课、中课中对声乐的感
期刊
摘要:本文在简单介绍多媒体教学重要性的基础上,从管理和维护两个方面,对如何保障多媒体教室使用功能的正常发挥进行了分析和讨论,以期为实际工作的有效开展提供一定的参考和借鑒,共同推动民办高校教育教学质量的进一步提升。  关键词:多媒体;教室;管理;维护  【分类号】:G647  1 引言  目前,多媒体教学已经成为民办高校授课的主要形式,其原因在于,多媒体教学更具形象性和直观性,容易得到学生的广泛接受
期刊
摘要:本文通过讨论注浆技术在地铁土建施工中五种应用方式指出注浆技术是地铁土建施工中应用最广泛的技术之一。不同的施工问题选用相应的的双液注浆技术和化学注浆技术两种注浆施工工艺。  关键词:地铁施工;注浆技术;应用  【分类号】:U231.3  1. 前言  随着城市和现代交通建设的飞速发展,地下空间开发规模越来越大,一些地铁工程不得不在复杂地质条件下修建,当围岩稳定性和结构变形控制不能满足地铁施工和
期刊
摘要 针对就业压力不断加剧的现状,以应用型专业人才培养模式的创新为切入点,提出基于提高“就业能力”培养人才的目标,从校企对接、因人施教、加强实践锻炼、企业参与教学、教师培养等多方面提出提高大学生就业能力的途径和实施方法,满足大学生职业发展需求,为新形势下应用型专业的人才培养提供了思路。  关键词 人才培养;应用型专业;就业能力  【分类号】:F0-4  0 引言  近年来,随着我国的高等教育进入普
期刊
摘要:为了创造出一个整洁、文明、优美的生态环境,我们应该采用一个系统的工程来发展园林绿化建设,使生态、社会和经济效益同步发展,实现良性循环。园林绿化在城市的建设中是展示物质文明和精神文明的窗口,是一个城市良性发展的一前提,是城市中人们道德和文化素养的体现。本文作者结合多年来的工作经验,对园林绿化在城市景观中的作用进行了研究,具有重要的参考意义。  关键词:配置原则;树种选择配置;作用  中图分类号
期刊
【分类号】:G633.6  人的情感是丰富的,影响情感的因素也是多方面的 ,就数学教学的情感因素而论,可以分为学生自身的情感因素和教学环境中的情感因素两类。  所谓数学情感教学,就是指教师在数学教学中,在向学生传授数学知识和技能的同事,充分发挥情感因素的积极作用,以优化数学效果,提高数学质量的教学。下面结合实践,浅谈认识。  一,用教师的爱,诱发学生的学习情感。  情感是具有感染力的,教师热爱学生
期刊
摘要:历史教育既可成为个人发展的有力手段,又可以通过其引导学生感悟历史上人们对事物认识、辨析、判断、处理和发明创造,培养其具有自觉性推动历史进步的责任感。本文从培养高中学生社会责任感的途径与方法方面对高中学生社会责任感的培养和中学历史教学的关系进行着重的阐述,并就如何在学科教学中进行行之有效的教学实践展开探论。  关键词:教学 社会 责任感  【分类号】:G633.51  社会责任感就是在一个特定
期刊
摘要:阅读是搜索处理信息、认识世界、发展思维、获得审美体验的重要途径,它可以使学生形成良好的世界观、人生观、价值观,如何提高低年级学生的阅读能力,是现在教改中的一个热点问题。在教学实践中,我认为着重培养学生阅读的兴趣,点燃学生兴趣的火花,使学生尽快进入阅读的角色中,掌握阅读的方法,提高阅读的质量,指导学生熟读背诵和启发想象是提高阅读质量的关键所在。  关键词:阅读、能力、训练  中图分类号 :G6
期刊
摘要:当前我国数字电视网络发展迅速,强化其在校园教学中的运用具有重要意义。我国当前数字电视网络在校园教学推广和应用中还存在较多的问题,文章针对这些问题从转变教学理念和教学方法、改造升级校园数字电视网络硬件设备、丰富校园数字电视节目内容、加强与当地有线电视网络运营商的合作等不同方面提出了对策。  关键词:数字电视网络;校园教学;运用  【分类号】:G434  一、我国数字电视网络发展概况  数字电视
期刊
【摘要】当前计算机应用技术水平的提升,让社会对于计算机专业人才有了越来越多的需求,同时对于人才衡量标准也有了进一步的提高。从当前的情况来看,高职院校计算机应用专业教育虽然较之前有了一定的改进,但是依然存在不少的问题,需要进一步的完善。基于高职院校教育方向的特殊性,针对性加强计算机应用专业课程体系建设,成为当前十分重要的一个问题。  【关键词】高职;计算机应用专业;人才培养;课程设置  中图分类号】
期刊