求一SQL函数,根据参数,返回xml结构
表名:test
code [name]
-----------------------------
001 AAA
002 BBB
003 CCC
假设函数名为:fn_return_xml
执行:select dbo.fn_return_xml('001')
希望返回:
<s>
<c='001' n='AAA' />
</s>
执行:select dbo.fn_return_xml('001,002')
希望返回:
<s>
<c='001' n='AAA' />
<c='002' n='BBB' />
</s>
我写了一个,只能处理一个code的(多个code用逗号<,>分隔)
create function fn_return_xml(@str nvarchar(100))
returns nvarchar(2000)
as
begin
declare @ret nvarchar(2000)
set @ret = ''
-- set @str = replace(@str,',',''',''')
-- set @str = ''''+@str+''''
select @ret = @ret + '<c=''' + code + ''' n='''+[name]+''' />'
from
test
where code in (@str)
set @ret = '<s>'+@ret+'</s>'
return @ret
end
哪位高人帮我看看.
有的改吗?
或者用新的方法.
思路也行,谢谢!