我如何调用返回表并接受varchar的函数?

时间:2011-08-30 08:27:36

标签: sql sql-server sql-server-2005 tsql

我有一个我需要使用的函数,我传入一个var char并将记录插入一个名为@ValueList的表中。但是我不确定如何调用/使用此功能?

ALTER FUNCTION [dbo].[GetListFromCSVString]
(            
      @csvString varchar(500)
)
RETURNS @ValueList TABLE 
(
      ListValue varchar(50)
)
AS
begin
      -- body

End

1 个答案:

答案 0 :(得分:7)

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