我该如何调用返回一个表并接受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 
+0

我不应该能够在变量值列表传递的表名? – Jules

+0

@Jules - 不知道我明白。 '@ ValueList'是函数的返回值而不是参数。 –

+0

我已经粘贴了整个函数,正如你所看到的[at] ValueList是一个表名。 – Jules