微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLServer下的用户自定义函数的语法格式、编写实例以及调用方法

由于工作缘故,需要解决一个sql自定义函数,后来在网上查了很多才明白了其中的道理,我找到了自定义函数的语法格式,写法和调用方法

 

语法格式:

    CREATE FUNCTION <函数名称>
               (
                -- 函数的参数(可以多个)
                <@param1,sysname,@p1> <data_type_for_param1,int>,
                <@param2,@p2> <data_type_for_param2,char>
               )
              RETURNS
              <@表变量名>  TABLE
              (
               -- 返回的虚拟表中的字段  字段名 类型
               <Column_1,c1> <Data_Type_For_Column1,
               <Column_2,c2> <Data_Type_For_Column2,int>
              )
              AS
              BEGIN
                    -- 函数体,里面可以定义一些变量,总之最后返回的应该是个结果集
              RETURN
              END

              GO

 

写法(工作中的例子):

   
CREATE FUNCTION getcallbackdata
 (@mycallerno varchar(30),
  @myid int
 )
RETURNS @callbdata TABLE
 (
 callerarea varchar (10),
 status int,
 route int,
 prefix varchar(20),
 pcell int,
 prate money,
 prov varchar(20) NULL
 )
AS
 BEGIN
DECLARE @arecode  varchar(10),
 @status int,
 @route int,
 @prefix varchar(20),
 @pcell int,
 @prate money,
 @prov varchar(20)

select @arecode=areacode from sd_areaplay
select @status=state  from sd_account where pin='@mycallerno'
select @prefix=prefix from sd_platformrouter
select @pcell=feesec,@prate=afterfreefee from sd_payplan
insert into @callbdata values(@arecode,@status,@route,@prefix,@pcell,@prate,@prov);
RETURN  
END

GO

 

调用方法

 

  select callerarea,status,route,prefix,pcell,prate,prov from t.getcallbackdata('mycallerno',mypid)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐