sqlserver 自学笔记 函数实训 学分学期转换函数的设计
设计目的:
1.运用sql基本知识,编写学期转换函数。
2.运用sql基本知识,编写学分转换函数,将考试成绩转换为学分
3.通过上述函数的编写与调试,熟练掌握 sql函数的编写、调试与使用方法。
设计内容:
1.根据需求,分析并设计函数的功能、入口参数和返回值。
①学分转换函数
在学籍管理中,需要根据学生选修课程的成绩,查询所获学分情况,如果成绩大于等于60分,就可以获得该课程对应的学分,否则所得学分为0.这种需求可以通过函数实现,根据要求,该函数的功能以及入口参数和返回值要求如下。
功能要求:将学生考试成绩转换为学分的功能。如果考试通过则获得该课程的学分,否则获得学分为0.
入口参数:成绩和课程学分
返回:返回应得学分
②学期转换函数
在学籍管理中,每门课程都会在规定学期(如学生入学后的第四学期开课)而入学时间不同,对应的具体开课时间不同。
例如“面向对象程序设计”规定学生入学后的第四学期开设,2005年入学的同学需要在2006-2007/2学期学习该门课程,而2006年入学的同学需要在2007-2008/2学期学习该课程。反过来如果需要统计2005年入学同学在2006-2007/2学期学习哪些课程,这些课程的考试情况怎么样,需要将2006-2007/2的学期表示形式转换为4的学期表示形式,然后再查询学生对4学期开设课程课程的考试情况即可。
为了完成上述学期转换的功能,需要设计一个学期转换函数。该函数的功能以及入口参数和返回值要求如下。
功能要求:结合学生入学年份,将如“2006-2007/2”的学期表述的字符串转换为如1,2,3等表述的数字方式。例如2005年入学的同学的2006-2007/2学期是其在校的第四学期。
入口参数:学年和入学年份。
返回:数字表示的学期。
函数实现
1.CreditConvert(功能:学分转换)
CREATE FUNCTION CreditConvert(@score NUMERIC(3,1),@CCredits NUMERIC(3,1))
--@score : 考试成绩
--@CCredits:课程规定学分
RERURNS NUMERIC(5,2) --应得学分
AS
BEGIN
RETURN
CASE SIGN(@score-60)--sign函数取结果符号,当为零时结果为0
WHEN 1 THEN @CCredits
WHEN 0 THEN @CCredits
WHEN -1 THEN 0
END
END
termConvert(功能:学期转换)
CREATE FUNCTION termConvert(@term CHAR(11),@clno CHAR(6))
--@term 学年,格式如:2006-2007/2
--@clno 班级编号,前两位代表入学年份
RETURNS INT --在校第几学期
AS
BEGIN
RETURN(CONVERT(NUMERIC,SUBSTRING(@term,1,4))-CONVERT(NUMERIC,'20'+SUBSTRING(@clno,1,2)))*2+CONVERT(NUMERIC,SUBSTRING(@term,11,1))
END
执行函数
①学分转换函数
SELECT CName,dbo.CreditConvert(30,CCredits) fail,dbo.CreditConvert(70,CCredits)pass FROM Course
②学期转换函数
SELECT dbo.termConvert('2005-2006/2','04')
整理自:教科书《数据库试验指导》 人民邮电出版社
sqlserver 自学笔记 函数实训 学分学期转换函数的设计的更多相关文章
- sqlserver 自学笔记之 常量,变量及函数
(1)全局变量. 输入以下sql语句,根据查询结果,了解sqlserver全局变量的含义 select @@VERSIONselect @@CONNECTIONSselect @@CURSOR_ROW ...
- sqlserver自学笔记之的流程控制语句
1.使用if else语句 ①在学生表中,查找名字为王刚的同学,如果存在,显示该同学的信息,否则显示查无此人 if exists(select sno from student where sname ...
- sqlserver -- 学习笔记(六)日期格式转换
忘了这篇是从哪里看到,然后复制保存下来,感谢原创的分享~ ) ::08 ),'-',''),' ',''),':','') ),'/','-') ) , ) ) , ) ) , ) ) , ) ) , ...
- Java实训:实训一 ——长春职业技术学院 16级网络工程
Java实训:实训一 本文会解释一些设计思路. 想看具体过程,请转:https://www.cnblogs.com/lxwlxw/p/10114187.html 笑维的码云项目命名不太对,所以我来:h ...
- Mysql实训任务书
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6635189537079296526/ 什么是数据库:数据库(Database)是按照数据结构来组织.存储和管理数据 ...
- golang构造函数与转换函数
golang的每种类型, 凡是用type定义的类型, 其类型名既是其构造函数,也是其转换函数. 其中,构造函数后眼{...}, 转换函数后跟(...)
- T-SQL语句中的转换函数
书接上回 前面讲了聚合函数.字符串函数 今天一起来看下转换函数 首先是 值类型转换 ),degree) 在C#里面是convert,现在在SQL中也是他,convert(转换类型,被转换列)from ...
- conversion function——转换函数
类型转换函数 与 explicit关键字 1.类型转换函数 在C++中,可以使用构造函数将一个指定类型的数据转换为类的对象,也可以使用类型转换函数 (type conversion function) ...
- vi, Java, Ant, Junit自学报告 - 实训week1
vi, Java, Ant, Junit自学报告 2017软件工程实训 15331023 陈康怡 vi Vi是linux系统的标准文本编辑器,采用指令的方式进行操作,此处仅记录部分常用的指令. vi模 ...
随机推荐
- 基于visual Studio2013解决算法导论之010快排中应用插入排序
题目 快排中引用插入排序 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <malloc.h> ...
- c++怎样让返回对象的函数不调用拷贝构造函数
我们知道拷贝构造函数有两种“默默”的方式被调用 1. 想函数传入 值参数 2. 函数返回 值类型 今天我们讨论函数返回值类型的情况. 得到结论是 1. 当对象有拷贝构造函数(系统为我们生成.或者我们自 ...
- 物理Data Guard主备切换步骤
物理Data Guard角色转换步骤 Step 1 验证主库是否能执行角色转换到备库(原主库执行) SQL> SELECT SWITCHOVER_STATUS FROM V$DATAB ...
- android 屏幕尺寸的理解
对android设备屏幕尺寸单位的理解 一.android移动设备(手机和平板)常用的关于屏幕的一些单位: 1.px:像素点,应该是一个统一的单位,与我们国际单位米(M)应该是一回事,它应该是屏幕尺寸 ...
- javascript笔记整理(概述,变量,数据类型)
A.概述 1.输出工具: document.write()---可以是html alert()---字符串 prompt(text,defaultText) text---可选.要在对话框中显示的纯文 ...
- 【linux】linux启动流程
欢迎转载,转载时请保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...
- 高性能JavaScript模板引擎原理解析
随着 web 发展,前端应用变得越来越复杂,基于后端的 javascript(Node.js) 也开始崭露头角,此时 javascript 被寄予了更大的期望,与此同时 javascript MVC ...
- 树状DP
紫皮,各种,非原创 树状数组在我的理解就是在决策过程中具有层次关系,像是树一样,具有上下级关系或者上级对上级一定程度的限制条件 uva 12186 工人的请愿书 下属中不小于 T% 的人签字时会签字递 ...
- css盒模型和块级、行内元素深入理解
盒模型是CSS的核心知识点之一,它指定元素如何显示以及如何相互交互.页面上的每个元素都被看成一个矩形框,这个框由元素的内容.内边距.边框和外边距组成,需要了解的朋友可以深入参考下 一.CSS盒模型 盒 ...
- C# LDAP认证登录
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以根据需要定制.与X ...