sql中的自定义函数

因为集团oa审批涉及不同层级,总部cit人员写了一个函数让我们进行测试,我才了解了所谓的自定义函数的内容

于是赶紧找度娘,查资料,才了解了些许关于自定义函数的内容,为了方便大家学习,于是将我测试的资料整理出来,供大家参考,若有任何问题,请大家随时指出,我们来共同学习。

首先:给大家贴出我们设计的自定义函数所在地址,如下所示:我用的是sql2008客户端,地址如下,大家创建好了可以进入该路径查看:

sql中的自定义函数

第二:给大家介绍一下自定义函数的类型:从上图显而易见,分为两种:表值函数(返回的是一个表结构),标量值函数(返回的是单个的数值)

1)我们先看一下表值函数的语法结构:到时候大家只要按照此语法结构,套自己的内容即可

Create function function_name(@parameter_name,parameter_data_type)—(@参数名 参数的数据类型)

Return table ---返回一张表

[as]

Return ( --返回下面空白部分所写预计中查询的表 )

代码如下:

Create function getInfo(@gono nvarchar(10))
returns table --大家注意此处,返回用的是returns,table是关键字
return( --此处需要return
select 用户工号, 用户姓名 from BA_用户基本资料主档 where 用户工号 like @gono+'%'
)

还有一种方法:就是创建一个临时表,将查询的临时表返回给自定义表值函数 :如下所示:

create function getInfo(@gono nvarchar(10))
returns @temptb table(gono nvarchar(10)not null, name nvarchar(50) not null,tel nvarchar(11)null) --创建临时表,将查询的数据存储在临时表中
as
begin
insert  @temptb
select 用户工号, 用户姓名,手机短号 from BA_用户基本资料主档 where 用户工号 like @gono+'%'
return --将查询出来的数据作为结果返回给临时表
end

大家要注意着两种方法关键字return的位置。

2)我们接着来看标量函数的语法结构:

CREATE FUNCTION function_name(@parameter_name parameter_data_type )(@参数名 参数数据类型)

Return data_type --返回返回值的数据类型

[WITH ENCRYPTION] --如果制定了encryption 则函数被加密

[as]

BEGIN

 FUNCTION_BODY--函数体

         RETURN 表达式;

 END

接下来,我们看看创建的实例:

create function getName(@gono nvarchar(10))
returns nvarchar(50)
as
begin
Declare @name nvarchar
select @name=用户姓名 from BA_Test_用户基本资料主档 where 用户工号 [email protected]
return @name
end

其实sql可视化窗口工具已经提供了基础的语法格式,我们也可以按照提供的进行编辑:

右键表值函数或者标量函数,就会有弹出窗口提示新建表值或者标量函数的内容

好了,今天就给大家总结到此,欢迎各位批评指正哈!