为什么我的SQL函数返回意外值?

dev*_*v2d 2 sql sql-server sql-server-2008

我正在编写一个函数,我需要根据包含用户电子邮件的逗号分隔字符串从表中获取Title(例如Mr/Miss/Mrs)FirstName和LastName.

到目前为止,我试过以下

我的SQL小提琴 PS.首先在fiddler页面上构建模式,然后尝试执行查询

当我运行以下

select dbo.fn_getUserNamefrmEmail('abc.def@gmail.com')
Run Code Online (Sandbox Code Playgroud)

我得到了正确的输出 Mr. Abc Def

但是当我试着奔跑的时候

select dbo.fn_getToUserNames('abc.def@gmail.com, pqr.stu@gmail.com, xyz.mno@gmail.com, stu.v@gmail.com',',')
Run Code Online (Sandbox Code Playgroud)

我得到NULL - 0因为我将结果设置为0,如果它是NULL

我无法理解我做错了什么,需要帮助.

Szy*_*mon 5

只有一个小问题.

改变线

DECLARE @result_string nvarchar(max)
Run Code Online (Sandbox Code Playgroud)

DECLARE @result_string nvarchar(max) = ''
Run Code Online (Sandbox Code Playgroud)

你还没有初始化@result_string变量,所以当你这样做时它仍然是null

SELECT @result_string = @result_string + ', ' + @temp
Run Code Online (Sandbox Code Playgroud)

最终结果仍然是空的.

SQL小提琴中的正确版本.