SQL标量值函数和表值函数

 SQL标量值函数和表值函数

 

概念:

 1.表值函数是返回一个TABLE类型,TABLE类型相当于一张存储在内存中的一张虚拟表。(集合)

 2.标量值函数返回指定类型数据。(单个值)

--描述:表值函数
--作者:Eric He
--日期:2012-05-06
CREATE FUNCTION Temp(@NO NUMERIC(14,0))
RETURNS @table TABLE
(
  [NO] BIGINT IDENTITY (1,1), 
  A char(7),
  B char(8),
  C char(9)
)
AS
BEGIN
    IF @NO IS NULL
       SET @NO=0
    WHILE @NO>0
    BEGIN
       INSERT INTO @table(A,B,C)
       VALUES(@NO,@NO,@NO)
       SET @NO=@NO-1
    END
    RETURN
END

/*调用:SELECT *FROM Temp(10)*/

--描述:标量函数
--作者:Eric He
--日期:2012-05-06
CREATE FUNCTION GetState(@Name VARCHAR(50))
RETURNS VARCHAR(50)
AS
BEGIN
 DECLARE @result VARCHAR(50)
 IF @Name IS NULL
    SET @Name=''
 IF @Name IS NOT NULL AND @Name<>''
 BEGIN
        /*
        If @Name = 'SQDB'
              SET @result='申请担保'
        Else If @Name = 'ZSSL'
              SET @result='正式受理'
        Else If @Name = 'TGPS'
              SET @result='通过评审'
        Else If @Name = 'QYDB'
              SET @result='签约担保'
        ELSE 
              SET @result='没有对应的枚举项!'
        */
        
         SELECT @result =
         CASE @Name 
                     WHEN 'SQDB' THEN '申请担保'
                     WHEN 'ZSSL'  THEN'正式受理'
                     WHEN 'TGPS' THEN'通过评审'
                     WHEN 'QYDB' THEN'签约担保'
         ELSE '没有对应的枚举项!'
         END
 END
RETURN @result
END

/*调用:SELECT dbo.GetState('sqdb') AS State*/

注意:函数前边一定要加上所有者:dbo (表值函数调用的时候不用加入)

作者:Eric He

http://my.csdn.net/eriche_yong

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值