你所在位置:首页Sql资源 → mssql方便的函数使用与游标使用练习

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

发布时间:2019-06-12

方便的函数使用与游标使用练习

 

 

 

结果:

 

 

新建函数:

 

[sql]

GO    www.350job.com  

/****** 对象:  UserDefinedFunction [dbo].[fun_get_class_nam]    脚本日期: 07/28/2012 07:26:23 ******/  

SET ANSI_NULLS ON  

GO  

SET QUOTED_IDENTIFIER ON  

GO  

  

/*****************************************************  

** 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  

     www.350job.com                                )  

returns varchar(200)  

as  

begin     

    declare @class_nam varchar(200)  

    set @class_nam = null  

    select @class_nam = className  

      from classinfo   

     where classID = @class_id AND stat='1'  

  

    return @class_nam  

END  

 

查询语句中使用函数:

 

[sql]

SELECT    www.350job.com  

    id,  

    username,  

    userpwd,  

    classID,  

    dbo.fun_get_class_nam(classID) AS classname,  

    score,  

    age  

FROM  

    stuinfo  

 

下面是游标的简单用法:

 

[sql]

      

DECLARE cur CURSOR  --声明游标  

FOR  

SELECT score,age FROM stuinfo  

  

Open cur  --打开游标  

      

DECLARE @score int --接收游标数据的变量,与上面的声明游标查询语句的个数相同  

DECLARE @age int   

    www.350job.com  

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  --查询下一条  

END  

CLOSE cur   --关闭游标  

DEALLOCATE cur  --释放游标  

 

 

作者 pukuimin1226


上一篇:应用实例之按照出现率显示数据
下一篇:sql游标语句