日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
講解SQLServer數(shù)據(jù)庫中函數(shù)的使用方法

導(dǎo)讀:本文主要主要講解了SQL Server數(shù)據(jù)庫中函數(shù)的兩種用法,具體內(nèi)容請參考下文:

創(chuàng)新互聯(lián)公司專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、蕉嶺網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作成都做商城網(wǎng)站、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為蕉嶺等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

  1. 由于update里不能用存儲過程,并且由于根據(jù)更新表的某些字段還要進行計算。所以很多人采用的是游標的方法,在這里我們可以用函數(shù)的方法實現(xiàn)。

  函數(shù)部分:

 
 
 
  1.  CREATE FUNCTION [DBO].[FUN_GETTIME] (@TASKPHASEID INT)  
  2.   RETURNS FLOAT AS 
  3.   BEGIN 
  4.   DECLARE @TASKID INT,  
  5.   @HOUR FLOAT,  
  6.   @PERCENT FLOAT,  
  7.   @RETURN FLOAT 
  8.   IF @TASKPHASEID IS NULL 
  9.   BEGIN 
  10.   RETURN(0.0)  
  11.   END 
  12.   SELECT @TASKID=TASKID,@PERCENT=ISNULL(WORKPERCENT,0)/100  
  13.   FROM TABLETASKPHASE  
  14.   WHERE ID=@TASKPHASEID  
  15.   SELECT @HOUR=ISNULL(TASKTIME,0) FROM TABLETASK  
  16.   WHERE ID=@TASKID  
  17.   SET @RETURN=@HOUR*@PERCENT  
  18.   RETURN (@RETURN)  
  19.   END 

   調(diào)用函數(shù)的存儲過程部分:

 
 
 
  1. CREATE PROCEDURE [DBO].[PROC_CALCCA]  
  2.   @ROID INT 
  3.   AS 
  4.   BEGIN 
  5.   DECLARE @CA FLOAT 
  6.   UPDATE TABLEFMECA  
  7.   SET 
  8.   Cvalue_M= ISNULL(MODERATE,0)*ISNULL 
  9.   (FMERATE,0)*ISNULL(B.BASFAILURERATE,0)*[DBO].[FUN_GETTIME](C.ID)  
  10.   FROM TABLEFMECA ,TABLERELATION B,TABLETASKPHASE C  
  11.   WHERE ROID=@ROID AND TASKPHASEID=C.ID AND B.ID=@ROID  
  12.   SELECT @CA=SUM(ISNULL(Cvalue_M,0)) FROM TABLEFMECA WHERE ROID=@ROID  
  13.   UPDATE TABLERELATION  
  14.   SET CRITICALITY=@CA  
  15.   WHERE ID=@ROID  
  16.   END 
  17.   GO  

    2. 我們要根據(jù)某表的某些記錄,先計算后求和,因為無法存儲中間值,平時我們也用游標的方法進行計算。但SQL Server 2000里支持。

  SUM ( [ ALL DISTINCT ] eXPression )
  expression

  是常量、列或函數(shù),或者是算術(shù)、按位與字符串等運算符的任意組合。因此我們可以利用這一功能。

  函數(shù)部分:

 
 
 
  1.  CREATE FUNCTION [DBO].[FUN_RATE] (@PARTID INT,  
  2.   @ENID INT,@SOURCEID INT, @QUALITYID INT,@COUNT INT)  
  3.   RETURNS FLOAT AS 
  4.   BEGIN 
  5.   DECLARE @QXS FLOAT, @G FLOAT, @RATE FLOAT 
  6.   IF (@ENID=NULL) OR (@PARTID=NULL) OR (@SOURCEID=NULL) OR (@QUALITYID=NULL)  
  7.   BEGIN 
  8.   RETURN(0.0)  
  9.   END 
  10.   SELECT @QXS= ISNULL(XS,0) FROM TABLEQUALITY WHERE ID=@QUALITYID  
  11.   SELECT @G=ISNULL(FRATE_G,0) FROM TABLEFAILURERATE  
  12.   WHERE (SUBKINDID=@PARTID)  
  13.   AND( ENID=@ENID)  
  14.   AND ( DATASOURCEID=@SOURCEID)  
  15.   AND( ( (ISNULL(MINCOUNT,0)<=ISNULL(@COUNT,0))  
  16.   AND ( ISNULL(MAXCOUNT,0)>=ISNULL(@COUNT,0)))  
  17.   OR(ISNULL(@COUNT,0)>ISNULL(MAXCOUNT,0)))  
  18.   SET @RATE=ISNULL(@QXS*@G,0)  
  19.   RETURN (@RATE)  
  20.   END 

   調(diào)用函數(shù)的存儲過程部分:

 
 
 
  1.  CREATE PROC PROC_FAULTRATE  
  2.   @PARTID INTEGER, @QUALITYID INTEGER,@SOURCEID INTEGER,  
  3.   @COUNT INTEGER, @ROID INT, @GRADE INT,@RATE FLOAT=0 OUTPUTAS  
  4.   BEGIN 
  5.   DECLARE 
  6.   @TASKID INT 
  7.   SET @RATE=0.0  
  8.   SELECT @TASKID=ISNULL(TASKPROID,-1) FROM TABLERELATION  
  9.   WHERE ID=(SELECT PID FROM TABLERELATION WHERE ID=@ROID)  
  10.   IF (@TASKID=-1) OR(@GRADE=1) BEGIN 
  11.   SET @RATE=0  
  12.   RETURN 
  13.   END 
  14.   SELECT @RATE=SUM([DBO].[FUN_RATE]  
  15.   (@PARTID,ENID,@SOURCEID, @QUALITYID,@COUNT) *ISNULL(WORKPERCENT,0)/100.0)  
  16.   FROM TABLETASKPHASE  
  17.   WHERE TASKID=@TASKID  
  18.   END 
  19.   GO  

 本文就為大家總結(jié)出了這兩種SQL Server數(shù)據(jù)庫函數(shù)使用方法,如果大家有更多更好的方法,歡迎拿出來與大家一起分享。


新聞標題:講解SQLServer數(shù)據(jù)庫中函數(shù)的使用方法
URL網(wǎng)址:http://www.5511xx.com/article/djpoohh.html