表值函数

Posted anyihen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表值函数相关的知识,希望对你有一定的参考价值。

用户定义表值函数返回 table 数据类型。

表值函数主要用于数据计算出来返回结果集。

--不带输入参数的表值函数

create function tvpoints()
returns table
as
return
(
select * from tb_users
);

--调用

select  * from  tvpoints()

--对于多语句表值函数,在 BEGIN...END 语句块中定义的函数体包含一系列 Transact-SQL 语句,这些语句可生成行并将其插入将返回的表中。

create function tvpoints1()
returns @points table (x float, y float)
as begin
insert @points values(1,2);
insert @points values(3,4);
return;
end

--带参数

create function tvpoints3(@x AS int,@y as int)
returns @points table (x float, y float)
as begin
insert @points values(@x,@y);
return;
end

--调用

select * from tvpoints3(1,2)

 

 

 

create function [dbo].[FGetSplitTable](@multiinput varchar(max))
Returns @multitable Table(Text varchar(30))
begin


Declare @split char(1)
Declare @store varchar(30)
Declare @start int, @end int, @len int
Declare @source varchar(max)

Select @split = ‘,‘

select @start = 1
select @source = ltrim(rtrim(@multiinput)) + @split

select @end = CharIndex(@split, @source, @start)
select @len = Len(@source)

While @start < @len
Begin
select @end = CharIndex(@split, @source, @start)
select @store = ltrim(rtrim(SubString(@source, @start, @end - @start)))
select @start = @end + 1

If @store <> ‘‘ Insert into @multitable(Text) select ltrim(rtrim(@store))
End

return
End
go

 

 

技术图片

 

以上是关于表值函数的主要内容,如果未能解决你的问题,请参考以下文章

表值函数

多语句表值函数与内联表值函数

MySQL没有表值函数么

sqlserver中的表值函数和标量值函数

PCB MS SQL表值函数与CLR 表值函数 (例:字符串分割转表)

存储过程和表值函数有啥区别?