sql中的自定义函数
因为集团oa审批涉及不同层级,总部cit人员写了一个函数让我们进行测试,我才了解了所谓的自定义函数的内容
于是赶紧找度娘,查资料,才了解了些许关于自定义函数的内容,为了方便大家学习,于是将我测试的资料整理出来,供大家参考,若有任何问题,请大家随时指出,我们来共同学习。
首先:给大家贴出我们设计的自定义函数所在地址,如下所示:我用的是sql2008客户端,地址如下,大家创建好了可以进入该路径查看:
第二:给大家介绍一下自定义函数的类型:从上图显而易见,分为两种:表值函数(返回的是一个表结构),标量值函数(返回的是单个的数值)
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可视化窗口工具已经提供了基础的语法格式,我们也可以按照提供的进行编辑:
右键表值函数或者标量函数,就会有弹出窗口提示新建表值或者标量函数的内容
好了,今天就给大家总结到此,欢迎各位批评指正哈!