加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 13:05:31 所属栏目:MsSql教程 来源:网络整理
导读:由于工作缘故,需要解决一个sql自定义函数,后来在网上查了很多才明白了其中的道理,我找到了自定义函数的语法格式,写法和调用方法 ? 语法格式: ??? CREATE FUNCTION 函数名称? ?????????????? ( ??????????????? -- 函数的参数(可以多个) ?????????????

由于工作缘故,需要解决一个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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读