成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

講解SQL Server數據庫中函數的使用方法

數據庫 SQL Server
SQL Server數據庫是一種功能性很好的關系數據庫管理系統,本文中主要為大家介紹SQL Server數據庫中函數的使用方法。

導讀:本文主要主要講解了SQL Server數據庫中函數的兩種用法,具體內容請參考下文:

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

  函數部分:

  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 

   調用函數的存儲過程部分:

  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. 我們要根據某表的某些記錄,先計算后求和,因為無法存儲中間值,平時我們也用游標的方法進行計算。但SQL Server 2000里支持。

  SUM ( [ ALL DISTINCT ] eXPression )
  expression

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

  函數部分:

  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=NULLOR (@PARTID=NULLOR (@SOURCEID=NULLOR (@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 

   調用函數的存儲過程部分:

  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  


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

【編輯推薦】

  1. SQL Server的函數庫漏洞
  2. Oracle中over函數的使用示例
  3. Oracle單行日期函數簡介
  4. SQL Server數據庫中對圖片進行保存和輸出
責任編輯:迎迎 來源: 希賽網
相關推薦

2011-08-02 14:29:06

SQL Server數Substring函數

2011-08-22 10:47:09

SQL Server流水號

2011-07-21 15:05:14

iPhone 數據庫

2011-08-22 13:04:47

SQL Server數函數

2011-08-22 11:39:53

SQL Server數PIVOT

2011-08-30 13:49:57

Qt數據庫QTableView

2011-08-11 17:00:33

iPhone數據庫SQLite

2011-08-25 16:13:31

SQL Server批量替換數據

2010-09-06 09:53:41

SQL Server語句

2010-09-14 09:53:52

sql server還

2009-03-19 09:44:07

SQL Server數據庫遷移數據庫

2011-08-25 17:49:14

MySQLmysqlcheck

2011-08-22 13:28:56

FOR XMLSQL Server

2011-03-30 15:36:31

SQL Server

2009-03-30 10:56:58

SQL Server數據庫死鎖數據庫

2011-08-15 13:48:47

SQL ServerROW_NUMBER(

2010-10-20 11:07:21

sql server全

2011-08-10 09:12:44

SQL Server插入圖像存儲過程

2011-08-29 14:44:56

DBLINK

2010-07-15 17:28:50

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线一区二区三区 | 国产精品日本一区二区在线播放 | 国产精品不卡 | 亚洲人在线 | 91精品国产91久久综合桃花 | 天堂色| 欧美αv| 999精品视频| 国产精品中文字幕一区二区三区 | 欧美一级电影免费 | 久久99精品久久久久久国产越南 | 天天干干 | 国产日产精品一区二区三区四区 | 电影在线 | 欧洲精品久久久久毛片完整版 | 成人久久久 | 久久综合久久久 | 成人久草| 成年人在线电影 | 伊人超碰 | 真人毛片 | 综合色影院 | 欧美大片一区二区 | 亚洲综合无码一区二区 | 一区福利视频 | 在线观看国产wwwa级羞羞视频 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 懂色中文一区二区三区在线视频 | 九九热精品视频在线观看 | 日韩欧美在线观看视频网站 | 黄色三级毛片 | 亚洲在线视频 | 免费视频二区 | 精品国产一区二区三区久久久蜜月 | 亚洲女人天堂成人av在线 | 你懂的av| 91精品国产乱码久久蜜臀 | av福利网 | 日韩一区二区三区在线 | 国产91在线 | 欧美 | 精品久久久久久久久久久久久久 |