讲解SQL Server数据库中函数的使用方法
本文主要主要讲解了SQL Server数据库中函数的两种用法 具体内容请参考下文
◆ 由于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( ) END SELECT @TASKID=TASKID @PERCENT=ISNULL(WORKPERCENT )/ FROM TABLETASKPHASE WHERE ID=@TASKPHASEID SELECT @HOUR=ISNULL(TASKTIME ) 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 )*ISNULL (FMERATE )*ISNULL(B BASFAILURERATE )*[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 )) FROM TABLEFMECA WHERE ROID=@ROID UPDATE TABLERELATION SET CRITICALITY=@CA WHERE ID=@ROID END GO
◆ 我们要根据某表的某些记录 先计算后求和 因为无法存储中间值 平时我们也用游标的方法进行计算 但SQL Server 里支持
SUM ( [ ALL DISTINCT ] eXPression ) expression
是常量 列或函数 或者是算术 按位与字符串等运算符的任意组合 因此我们可以利用这一功能
函数部分
lishixinzhi/Article/program/SQLServer/201311/22423