Case函数在信息查询中应用

时间:2024-01-01 点赞:46079 浏览:89624 作者原创标记本站原创

本文是一篇化工系论文范文,化工系有关毕业论文范文,关于Case函数在信息查询中应用相关电大毕业论文范文。适合化工系及信息管理系统及计算机系方面的的大学硕士和本科毕业论文以及化工系相关开题报告范文和职称论文写作参考文献资料下载。

摘 要信息管理系统已深透到生活工作中和各个部分,在信息管理系统中很重要的一部分是从中得到所需要的信息,Case函数在信息查询中有着不可替代的作用,本文就Case函数在信息查询中的应用进行了探讨.

关 键 词信息管理系统;查询;CASE函数

中图分类号O1文献标识码A文章编号1674-6708(2012)79-0092-02

当前信息经济时代,信息是企业发展不可或缺的重要组成部分,它有时决定着一个企业的发展甚至生存.在企业信息管理系统中,信息查询是最重要的组成部分之一,通过查询可以得到企业生产的基本信息、企业的生产信息、企业的经营信息及相关的其它信息,通过这些信息的分析,可以用来指导企业的生产和经营决策.下面结合实际应用,给出了Case函数在信息查询中应用示例,以帮助大家掌握对查询的应用.

1CASE函数介绍

1.1CASE函数形式

CASE函数有两种形式.

1.1.1简单CASE函数

格式:CASE输入表达式

WHEN当表达式THEN结果表达式[...n]

[ELSE其它结果表达式]

END

功能:首先计算输入表达式,然后按指定顺序判断每个WHEN子句的当表达式是否与输入表达式相等,返回第一个相等的结果表达式的值;如果没有相等的,则当指定ELSE子句时SQLServer将返回其它表达式的值;若没有指定ELSE子句,则返回NULL值.

1.1.2CASE搜索函数

格式:CASE

WHEN布尔表达式THEN结果表达式[...n]

[ELSE其它结果表达式]

END

功能:按指定顺序求每个WHEN子句布尔表达式的值,返回第一个取值为TRUE的结果表达式的值;如果没有取值为TRUE的布尔表达式,则当指定ELSE子句时SQLServer将返回其它结果表达式的值;若没有指定ELSE子句,则返回NULL值.

1.2参数说明

1)输入表达式:任何有效的MicrosoftSQLServer表达式;

2)当表达式:任意有效的SQLServer表达式.输入表达式和每个当表达式的数据类型必须相同,或者是隐性转换;

3)N:占位符,表明可以使用多个“WHEN当表达式THEN结果表达式”子句或“WHEN布尔表达式THEN结果表达式”子句;

4)结果表达式和其它结果表达式:是任意有效的SQLServer表达式;

5)布尔表达式:任意有效的布尔表达式.

1.3结果类型

从结果表达式和其它结果表达式的类型集合中返回最高的优先规则类型.

2数据表及说明

下表是宿舍信息管理系统中的宿舍分数表,w1-w5分别是星期一到星期五的分数,其中没有成绩的为当天没有查此宿舍.

3CASE在信息查询中应用

3.1查询周平均分

由于星期一到星期五不是每天查所有的宿舍,没有被查的宿舍成绩为null,如果直接把null的数据与其它数据进行计算,结果还是为null,所以计算平均分数时,不可以使用下面语句进行计算和查询.

SELECT楼号,宿舍,平均分等于(w1+w2+w3+w4+w5)/5FROM分数表

需要使用CASE函数把每天的分数进行转化,有成绩的按成绩计算,没有成绩的不计算在内或者说按0计算,并用相似的方法统计宿舍被查的天数,最后计算平均值,查询语句格式如下.

SELECT楼号,宿舍,平均分等于(casewhens1isnotnullthens1else0end

+casewhens2isnotnullthens2else0end

+casewhens3isnotnullthens3else0end

+casewhens4isnotnullthens4else0end

+casewhens5isnotnullthens5else0end)/

(casewhens1isnotnullthen1else0end

+casewhens2isnotnullthen1else0end

+casewhens3isnotnullthen1else0end

+casewhens4isnotnullthen1else0end

+casewhens5isnotnullthen1else0end)

FROM分数表

3.2多条件不定组合模糊查询

在宿舍管理过程中,经常会遇到多条件不同组合模糊查询的需求,为了很好地完成这个功能,可以设计一个存储过程,使用CASE函数和CHARINDEX函数来完成查询条件的设置.例如经常需要查询某班、某宿舍、男生或女生的分数情况;这些条件的组合有多种,有时需要查某班宿舍的分数,有时需要查某班男生或女生宿舍的分数,有时需要查某宿舍的分数.可以设计下面代码的存储过程.

DECLARE@classvarchar(10),@SEXvarchar(2),@hotelvarchar(10);

SELECT*

FROM分数表

WHERECHARINDEX(

(CASEWHEN@class等于''THEN班级编号ELSE@classEND),

FirstName

)>0ANDCHARINDEX(


(CASEWHEN@SEX等于''THEN性别ELSE@SEXEND),

性别

)>0

ANDCHARINDEX(

(CASEWHEN@hotel等于''THEN宿舍ELSE@hotelEND),

宿舍

)>0

3.3统计查询每系部男生女生各优秀宿舍数目

在分数表中,只有班级编号,没有班级名信息,其中bj1-bj3是化工系班级,bj4-bj6是建工系班级,其它为计算机系班级.在按系部统计男女生优秀宿舍的数目时,需要首先把班级编号转化为系部,然后再统计各系部的优秀宿舍数目,可以使用CASE函数把班级编号转化为具体系部,如果平均分为98分以上的为优秀,查询语句的格式如下:

SELECT

CASE班级编号

WHEN'bj1'THEN'化工系'

WHEN'bj2'THEN'化工系'

WHEN'bj3'THEN'化工系'

WHEN'bj4'THEN'建工系'

WHEN'bj5'THEN'建工系'

WHEN'bj6'THEN'建工系'

ELSE'计算机系'END系部,性别,count(*)数量

INTO优秀宿舍数

FROM宿舍成绩表

WHERE平均分>等于98

GROUPBYCASE班级编号

WHEN'bj1'THEN'化工系'

WHEN'bj2'THEN'化工系'

WHEN'bj3'THEN'化工系'

WHEN'bj4'THEN'建工系'

WHEN'bj5'THEN'建工系'

WHEN'bj6'THEN'建工系'

ELSE'计算机系'END,性别

3.4表格转换

有时需要把表格转换成更适合人们习惯、更易接受的表格.下面把优秀宿舍数表(字段:系部,性别,数量)转化为各系优秀宿舍数表(字段:系部,男,女),使用Case函数来完成此功能.

SELECT系部,

SUM(CASEWHEN性别等于'男'THEN

数量ELSE0END)‘男’,-统计男性宿舍

SUM(CASEWHEN性别等于'女'THEN

数量ELSE0END)‘女’-统计女性宿舍

INTO各系优秀宿舍数

FROM优秀宿舍数

前面是CASE函数在信息查询中的几个方面的应用,通过这几个实例可以看到,CASE函数功能很强,如果应用好CASE函数,可以大大提高我们查询的功能和查询效率,它的应用还不止这么多,这需要我们去总结和挖掘.

相关论文

文信息查询

为您写毕业论文毕业论文和职称论文提供关于毕业论文类硕士学位毕业论文范文,与文信息查询相关论文范例,包括关于毕业论文及学院及班级方面的。

计算机数据库信息查询技术

为您写数据库毕业论文和职称论文提供数据库类有关开题报告范文,与计算机数据库信息查询技术相关论文范文例文,包括关于数据库及计算机及数据。

房屋信息查询

本文是一篇房屋论文范文,房屋方面有关硕士学位论文,关于房屋信息查询相关开题报告范文。适合房屋及法律法规及行政执法方面的的大学硕士和本。

连锁企业信息查询系统的设计

本文是一篇数据库论文范文,数据库有关毕业论文格式模板,关于连锁企业信息查询系统的设计相关大学毕业论文范文。适合数据库及信息管理及信息。

在线实时动态公交信息查询系统

本文是一篇物联网技术论文范文,物联网技术类毕业论文参考文献格式,关于在线实时动态公交信息查询系统相关硕士论文范文。适合物联网技术及公。

基于WebGIS的H7N9信息查询系统开发

本文是一篇微生物论文范文,关于微生物相关专升本毕业论文开题报告,关于基于WebGIS的H7N9信息查询系统开发相关电大毕业论文范文。适合微生物。