下面将为您介绍在SQL中如何使用函数代替游标,供您参考,希望对您学习SQL中函数的使用能够有所帮助。
因为update里不能用存储过程,然而要根据更新表的某些字段还要进行计算。我们常常采用游标的方法,这里用函数的方法实现。
- CREATE FUNCTION [DBO].[FUN_GETTIME] (@TASKPHASEID INT)
- RETURNS FLOAT AS
- BEGIN
- DECLARE @TASKID INT,
- @HOUR FLOAT,
- @PERCENT FLOAT,
- @RETURN FLOAT
- IF @TASKPHASEID IS NULL
- BEGIN
- RETURN(0.0)
- END
- SELECT @TASKIDTASKID=TASKID,@PERCENT=ISNULL(WORKPERCENT,0)/100
- FROM TABLETASKPHASE
- WHERE ID=@TASKPHASEID
- SELECT @HOUR=ISNULL(TASKTIME,0) FROM TABLETASK
- WHERE ID=@TASKID
- SET @RETURN=@HOUR*@PERCENT
- RETURN (@RETURN)
- END
- 调用函数的存储过程部分
- CREATE PROCEDURE [DBO].[PROC_CALCCA]
- @ROID INT
- AS
- BEGIN
- DECLARE @CA FLOAT
- UPDATE TABLEFMECA
- SET
- Cvalue_M= ISNULL(MODERATE,0)*ISNULL(FMERATE,0)*ISNULL(B.BASFAILURERATE,0)*[DBO].[FUN_GETTIME](C.ID)
- FROM TABLEFMECA ,TABLERELATION B,TABLETASKPHASE C
- WHERE ROID=@ROID AND TASKPHASEID=C.ID AND B.ID=@ROID
- SELECT @CA=SUM(ISNULL(Cvalue_M,0)) FROM TABLEFMECA WHERE ROID=@ROID
- UPDATE TABLERELATION
- SET CRITICALITY=@CA
- WHERE ID=@ROID
- END
- GO
【编辑推荐】
SQL中CHARINDEX函数的调用方法
SQL中的分析函数
创建SQL函数的实例
SQL中一个很好用的日期格式化函数
SQL中返回计算表达式的函数
网页题目:SQL中用函数代替游标的方法
文章位置:http://www.shufengxianlan.com/qtweb/news25/441425.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联