当前位置: 代码迷 >> SQL >> mssql便利的函数使用与游标使用练习
  详细解决方案

mssql便利的函数使用与游标使用练习

热度:22   发布时间:2016-05-05 14:14:58.0
mssql方便的函数使用与游标使用练习

 

 

结果:

 

 

新建函数:

GO/****** 对象:  UserDefinedFunction [dbo].[fun_get_class_nam]    脚本日期: 07/28/2012 07:26:23 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO/******************************************************* PROCEDURE : fun_get_class_nam** DECRIPTION: 根据班级id获取班级名称** DATE      : 2010-07-28** VERSION      AUTH          DATE          DESC** --------  ------------  ------------  -----------------** V000.0.1    pukuimin		2010-07-28     新建程序** --------  ------------  ------------  -----------------*******************************************************/alter function [dbo].[fun_get_class_nam](  @class_id bigint								 )returns varchar(200)asbegin		declare @class_nam varchar(200)	set @class_nam = null	select @class_nam = className	  from classinfo 	 where classID = @class_id AND stat='1'	return @class_namEND


查询语句中使用函数:

SELECT	id,	username,	userpwd,	classID,	dbo.fun_get_class_nam(classID) AS classname,	score,	ageFROM	stuinfo


 

下面是游标的简单用法:

    DECLARE cur CURSOR  --声明游标FORSELECT score,age FROM stuinfoOpen cur  --打开游标    DECLARE @score int --接收游标数据的变量,与上面的声明游标查询语句的个数相同DECLARE @age int fetch Next from cur into @score,@age  --查询一次数据到变量     WHILE (@@FETCH_STATUS = 0 )  --如果不为空就循环读取BEGIN    IF (@score<85 AND @age <18)  --对符合条件的进行操作        UPDATE stuinfo SET score = 888        WHERE  CURRENT OF cur     FETCH Next FROM cur INTO @score,@age  --查询下一条ENDCLOSE cur   --关闭游标DEALLOCATE cur  --释放游标


 

 

 

1楼shehun1昨天 10:03
学习
  相关解决方案