- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
13.2 用户自定义函数(UDF) 13.2.1 基本概念 13.2.2 标量函数 13.2.3 内联表值函数 13.2.4 多语句表值函数 用户自定义函数可以扩展数据操作的功能,它在概念上类似于一般的程序设计语言中定义的函数。 用户自定义函数具有如下优点: 模块化程序设计 执行速度更快 减少网络流量 13.2.2 标量函数 标量用户自定义函数接受0个或多个参数并返回一个值。 CREATE FUNCTION [ 架构名.] 函数名 ( [ { @参数名 [ AS ] 参数数据类型 [ = 默认值 ] } [ ,...n ] ] ) RETURNS 返回值数据类型 [ AS ] BEGIN 函数体 RETURN 标量表达式 END 示例 例1.创建统计指定学生(学号)的选课门数的标量函数。 CREATE FUNCTION dbo.f_Count(@sno char(7)) RETURNS int AS BEGIN DECLARE @x int SELECT @x = count(*) FROM SC WHERE SNO = @sno RETURN @x END 示例 例2.创建查询指定课程(课程号)的考试平均成绩的标量函数。 CREATE FUNCTION dbo.f_AvgGrade(@cno varchar(20)) RETURNS int AS BEGIN DECLARE @avg int SELECT @avg = AVG(Grade) FROM SC WHERE Cno = @cno RETURN @avg END 调用标量函数 调用标量函数时,必须提供至少由两部分组成的名称:函数所属架构名和函数名。 可在任何允许出现表达式的SQL语句中调用标量函数,只要类型一致。 例3.调用例1定义的函数,查询“计算机系”的学生姓名和该系学生的选课门数。 SELECT Sname AS 姓名, dbo.f_Count(Sno) AS 选课门数 FROM Student WHERE Sdept = 计算机系 示例 例4.调用例2定义的函数,查询第2~4学期开设的每门课程的课程名、开课学期和考试平均成绩,将查询结果按学期升序排序。 SELECT Cname AS 课程名, Semester AS 开课学期, dbo.f_AvgGrade(Cno) AS 平均成绩 FROM Course WHERE Semester BETWEEN 2 AND 4 ORDER BY Semester ASC 13.2.3 内联表值函数 内联表值函数的返回值是一个表,该表的内容是一个查询语句的结果。 定义内联表值函数的语法为: CREATE FUNCTION [ 架构名.] 函数名 ( [ { @参数名 [AS] 标量数据类型 [ = 默认值 ] } [ ,...n ] ] ) RETURNS TABLE [ AS ] RETURN [ ( ] SELECT语句 [ ) ] 示例 例5.创建查询指定系的学生学号、姓名和考试平均成绩的内联表值函数。 CREATE FUNCTION dbo.f_SnoAvg(@dept char(20)) RETURNS TABLE AS RETURN ( SELECT S.Sno, Sname, Avg(Grade) AS AvgGrade FROM Student S JOIN SC ON S.Sno = SC.Sno WHERE Sdept = @dept GROUP BY S.Sno, Sname ) 示例 例6.创建查询选课门数高于指定门数的学生的姓名、所在系以及所选的课程名和开课学期的内联表值函数。 CREATE FUNCTION dbo.f_MoreCount(@c int) RETURNS TABLE AS RETURN ( SELECT Sname, Sdept, Cname, Semester FROM Student S JOIN SC ON S.Sno = SC.Sno JOIN Course C ON C.Cno = SC.Cno WHERE S.Sno IN ( SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) @c )) 调用内联表值函数 对内联表值函数的使用与视图非常类似,需要放置在查询语句的FROM子句部分,它的作用很象是带参数的
您可能关注的文档
- 汕头大学工学院土木工程系课件第五章 建筑工程初步介绍.ppt
- 汕头大学工学院土木工程系课件第一章 土木工程及土木工程设计导论概述.ppt
- 汕头大学医学院儿科学课件 Acute Upper Respiratory Infection (AURI).ppt
- 汕头大学医学院儿科学课件 Epilepsy.ppt
- 汕头大学医学院儿科学课件 heart failure.ppt
- 汕头大学医学院儿科学课件 Hyaline Membrane Disease.ppt
- 汕头大学医学院儿科学课件 Hypoxic- ischemic encephalopathy.ppt
- 汕头大学医学院儿科学课件 INFANTILE DIARRHEA.ppt
- 汕头大学医学院儿科学课件 INFECTIOUS MONONUCLEOSIS.ppt
- 汕头大学医学院儿科学课件 Kawasaki Disease.ppt
- Unit 5 The power of plants:Understanding ideas课件-2025-2026学年七年级上册《英语》(外研版).pptx
- Unit+2+More+than+fun+Understanding+ideas++课件+2025-2026学年外研版(2024)七年级英语上册++.pptx
- Unit+4+Section+B+(3a-3c)+课件+2025-2026学年人教版(2024)英语八年级上册.pptx
- Unit+5+Section+B+(1a~1f)+课件+2025-2026学年人教版八年级英语上册.pptx
- 7.2维护祖国统一 课件-2025-2026学年统编版道德与法治九年级上册.pptx
- Unit+6+Section+A+2a-2d+课件+2025-2026学年人教版英语八年级上册.pptx
- 8 .1《梦游天姥吟留别》课件 2025-2026学年统编版高一语文必修上册.pptx
- Unit+2+Home+Sweet+Home+SectionA+1a~1d课件+2025-2026学年人教版英语八年级上册.pptx
- Unit+3+Same+or+Different+SectionB+3a-3c+课件+2025-2026学年人教版八年级英语上册.pptx
- Unit+5+Section+B+(3a~3c+++Project)课件2025-2026学年人教版英语八年级上册+.pptx
最近下载
- 《核心素养下的语文教学》课件.pptx VIP
- 2025时事政治试题+答案.docx VIP
- 交通安全宣传知识讲解交通安全PPT模板.pptx VIP
- wbh-819a技术说明书v1[1].pdf VIP
- Unit8 Literature Spot Reading Club 课件-高中英语北师大版(2019)选择性必修第三册.pptx VIP
- 检修记录表(维修记录表).docx VIP
- 2025天津宏达投资控股有限公司及所属企业招聘工作人员笔试历年参考题库附带答案详解.docx VIP
- 2025人民出版社供小学用中华民族大家庭全册教案教学设计.docx
- 管道吊装专项施工方案.docx VIP
- 2025时事政治试题及答案.docx VIP
原创力文档


文档评论(0)