函数
时间:2019-11-11
本文章向大家介绍函数,主要包括函数使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 --例8.2.1创建自定义标量函数TOTAL()用来计算任意两数之和。 2 create function total(@a int, @b int) 3 returns int 4 begin 5 declare @c int 6 select @c = @a + @b 7 return @c 8 end 9 --调用 10 select dbo.total(10, 20) 11 --例8.2.2编写一个函数,可以通过输入借书时间来判断是否到期,当借阅时间大于30天,返回已经过期;否则返回还未到期。 12 alter function isdateout(@a datetime) 13 returns varchar(20) 14 as 15 begin 16 declare @res varchar(20) 17 if (datediff(day, @a, getdate()) > 30) 18 set @res = '已过期' 19 else 20 set @res = '未到期' 21 return @res 22 end 23 --调用 24 select dbo.isdateout('2019-11-1') 25 --例8.2.3 创建标量函数sumstudent()统计选课学生总数。 26 create function cal() 27 returns int 28 begin 29 return (select count(distinct cno) from course) 30 end 31 --调用 32 print dbo.cal() 33 --例8.2.4 求选课表中某门课的平均成绩。 34 create function calavg(@cname char(4)) 35 returns float 36 as 37 begin 38 declare @res float 39 select @res = avg(grade) 40 from sc, course 41 where sc.cno = course.cno and course.cname = @cname 42 return @res 43 end 44 --调用 45 select dbo.calavg('英语') as 英语的平均成绩 46 --例8.2.5 创建函数fun_table( )返回一组查询的结果。 47 create function fun_table(@sno char(9), @grade int) 48 returns table 49 as 50 return 51 ( 52 select * 53 from sc 54 where sno = @sno and grade > @grade 55 ) 56 --调用 57 select * 58 from dbo.fun_table('200515001', 80) 59 --例8.2.6 查询某个专业所有学生的学号、姓名、所选课程的课程号和成绩。 60 alter function show(@major char(10)) 61 returns table 62 as 63 return 64 ( 65 select student.sno 学号, sname 姓名, cno 课程号, grade 成绩 66 from student, sc 67 where student.sno = sc.sno and sdept = @major 68 ) 69 70 select * 71 from dbo.show('cs') 72 --例8.2.7 查询计算机专业所有学生的学号、姓名、所选的课程号和成绩。 73 update dbo.show('cs') 74 set 姓名 = '张力' 75 where 学号 = '2005150033' 76 --????违反了 PRIMARY KEY 约束“PK_student”。不能在对象“dbo.student”中插入重复键。重复键值为 (200515001)。 77 --例8.2.8 创建函数fun_multi_table( )返回一个临时表。 78 create function fun_multi_table() 79 returns @tmp_table table(学号 char(9), 课程名 varchar(20), 成绩 int) 80 as 81 begin 82 insert @tmp_table 83 select sno, cname, grade 84 from sc, course 85 where sc.cno = course.cno 86 return 87 end 88 select * 89 from dbo.fun_multi_table() 90 --例8.2.9 创建多语句表值函数,通过学号作为实参调用该函数,可显示该学生的姓名以及各门功课的成绩和学分。 91 create function st_score(@no char(9)) 92 returns @score table(sno char(9), sname char(10), cname char(10), score int, credit int) 93 as 94 begin 95 insert @score 96 select s.sno, s.sname, c.cname, c.credit, sc.grade 97 from student s, course c, sc 98 where s.sno = sc.sno and c.cno = sc.cno and s.sno = @no 99 return 100 end 101 --调用 102 select * 103 from st_score('200515001')
原文地址:https://www.cnblogs.com/liuwenhan/p/11834106.html
- 获取手机端验证码
- RESTful WCF
- android顶部导航条
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和Sql Server的缓存管理和使用ObjectBuil
- slidingmenu开源效果
- MySQL 5.0和PostgreSQL 8.1
- Python入门讲解
- DDM: 一个简洁的前端领域模型库
- 前后端分离之领域模型的思考
- 类选择符和ID选择符
- 仿网易新闻页面效果
- VS.Net 2005 Design-Time Integration
- XML Serializable Generic Dictionary
- MATLAB简易验证码识别程序介绍
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- JDK1.8新特性(七):默认方法,真香,开动!接口?我要升级!!
- Windows10上安装Linux子系统(WSL2,Ubuntu),配合Windows Terminal使用,还要什么自行车
- [Maven][maven-site-plugin]告警[WARNING] No project URL defined - decoration links will not be relativi
- QListWidget添加删除
- 使用GitHub Actions编译项目并将Jar发布到Maven Central仓库
- 为啥Flutter Hooks没有受到太多关注和青睐?
- 二叉搜索树删除节点 动画演示
- 并发与竞态 (自旋锁)
- [Maven][taglist-maven-plugin]告警[WARNING] Using legacy tag format
- [Maven][l10n-maven-plugin]告警[WARNING] No dictionary file under folder
- Python基础之多文件项目的演练
- Python中的命名空间和作用域(1)
- 浅谈Mybatis持久化框架在Spring、SSM、SpringBoot整合的演进及简化过程
- 玩转注册表,这几个windowsAPI函数就够了
- 施工专题第11篇:Python 包和模块使用总结