SQLServer 标量值函数定义 和 使用实例
2013-05-02 16:41
357 查看
--自定义函数 --名次查询 USE [yuejuan105] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --获取考试成绩名次。 CREATE FUNCTION [dbo].[GetRankNum] ( @ExamID varchar(30) , --考试批次 @GradeID varchar(30), --年级ID @ClassID varchar(30), --班级ID @SubjectID varchar(30), --科目ID @TestScores varchar(30), --考试分数 @Type int --查询类型(1:科目班级名次、2:科目年级名次、3:总分班级名次、4:总分年级名次) ) RETURNS integer AS begin declare @intVac int --返回名次 --科目班级名次 if(@Type=1) begin Select @intVac = Count(1) FROM T_CJ Where 1=1 AND BJ=@ClassID AND NJ=@GradeID AND KSID = @ExamID AND KM = @SubjectID AND ZF > @TestScores end --科目年级名次 else if(@Type=2) begin Select @intVac = Count(1) FROM T_CJ Where 1=1 AND NJ=@GradeID AND KSID = @ExamID AND KM = @SubjectID AND ZF > @TestScores end --总分班级名次 else if(@Type=3) begin Select @intVac = Count(1) FROM T_CJ Where 1=1 AND BJ=@ClassID AND NJ=@GradeID AND KSID = @ExamID AND ZF > @TestScores end --总分年级名次 else if(@Type=4) begin Select @intVac = Count(1) FROM T_CJ Where 1=1 AND NJ=@GradeID AND KSID = @ExamID AND ZF > @TestScores end else begin Select @intVac =-1 end --返回名次 return @intVac+1 end GO --调用标量值函数-班年科目查询 Select A.CJID , A.XH, A.XSXM, A.NJ, A.BJ, A.KM, ZF, B.ClassAVG, C.GradeAVG, dbo.GetRankNum(A.KSID,A.NJ,A.BJ,A.KM,A.ZF,1) AS ClassNum, dbo.GetRankNum(A.KSID,A.NJ,A.BJ,A.KM,A.ZF,2) AS GradeNum FROM dbo.T_CJ AS A Left join ( Select KM,KSID,BJ,NJ,avg(ZF) as ClassAVG FROM T_CJ Group by KM,KSID,BJ,NJ ) AS B ON A.km=b.km and a.nj=b.nj and a.bj=b.bj and a.ksid=b.ksid Left Join ( Select KM,KSID,NJ,avg(ZF) as GradeAVG FROM T_CJ Group by KM,KSID,NJ ) AS C ON A.km=C.km and a.nj=C.nj and a.ksid=C.ksid Where 1=1
相关文章推荐
- 标量值函数定义 和 使用实例
- SQLServer 表值函数与标量值函数 定义方式与调用区别
- SQLServer 表值函数与标量值函数 定义方式与调用区别
- SQLServer 表值函数与标量值函数 定义方式与调用区别
- [代码]如何使用用户定义的标量值函数(LINQ to SQL)
- SQLServer 表值函数与标量值函数 定义方式与调用区别
- SQLServer 表值函数与标量值函数 定义方式与调用区别
- SQLServer 表值函数与标量值函数 定义方式与调用区别
- Python过滤函数filter()使用自定义函数过滤序列实例
- sqlserver 开窗函数Over()的使用
- mysql中文汉字转拼音的自定义函数和使用实例(首字的首字母)
- Python学习(一)函数定义、使用与嵌套
- 使用scatter与random.normal函数绘制散点图简单实例
- JNI使用实例之C、C++ DLL回调java成员函数
- SQLServer与Oracle常用函数实例对比汇总
- 【python】如何批量读取文件夹的所有文件数据,os模块与open函数结合使用实例
- OpenStack详细解读:定义,好处与使用实例(1)
- mmap函数分析使用实例
- 在web.xml定义,在网页中使用变量实例 使用所有Servlet都可以访问的<context-param>方式
- 为什么在定义能够使用函数适配器的函数的时候要继承一下std::unary_function或者std::binary_function