我用一个varchar(max)列创建了一个用户定义的表类型,希望我可以通过传递一个实际的查询来调用我的函数。当然没用。
我的功能如下:
create function tfnTableToString(@strings TVP_Strings READONLY)
returns varchar(max)
as
begin
return SUBSTRING((SELECT ',' + string FROM @strings FOR XML PATH('')), 2 , 9999)
end
go
如您所见,我只是通过重构将查询结果转换为逗号分隔的字符串的过程来使代码更简单。有没有办法做到这一点,或者我只是在需要的地方不得不写丑陋的SUBSTRING(... FOR XML PATH ...)?