我该如何调用返回一个表并接受varchar的函数?
问题描述:
我有我需要使用的函数,我传入一个var char,并将记录插入到名为使用@ValueList的表中。不过,我不知道如何调用/使用此功能?我该如何调用返回一个表并接受varchar的函数?
ALTER FUNCTION [dbo].[GetListFromCSVString]
(
@csvString varchar(500)
)
RETURNS @ValueList TABLE
(
ListValue varchar(50)
)
AS
begin
-- body
End
答
select ListValue
from dbo.GetListFromCSVString('1,2,3')
结果:
ListValue
----------
1
2
3
如果参数给函数是你必须使用cross apply
获取值的列表中源表的每一行的另一个表中的字段。
-- Table to test on
declare @T table
(
ID int identity primary key,
SomeColumn varchar(500)
)
-- Sample data
insert into @T values('1,2,3')
insert into @T values('a,b,c')
-- Use the function
select ST.ID,
GL.ListValue
from @T as ST
cross apply dbo.GetListFromCSVString(ST.SomeColumn) as GL
结果:
ID ListValue
----------- ----------
1 1
1 2
1 3
2 a
2 b
2 c
我不应该能够在变量值列表传递的表名? – Jules
@Jules - 不知道我明白。 '@ ValueList'是函数的返回值而不是参数。 –
我已经粘贴了整个函数,正如你所看到的[at] ValueList是一个表名。 – Jules