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

时间:2014-05-04 08:22:09

标签: sql sql-server sql-server-2008

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

到目前为止,我已尝试过

My SQL Fiddle PS。首先在fiddler页面上构建架构,然后尝试执行查询

当我按照

运行时
select dbo.fn_getUserNamefrmEmail('abc.def@gmail.com')

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

但是当我尝试运行时

select dbo.fn_getToUserNames('abc.def@gmail.com, pqr.stu@gmail.com, xyz.mno@gmail.com, stu.v@gmail.com',',')

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

我无法理解我做错了什么并需要帮助。

1 个答案:

答案 0 :(得分:5)

只有一个小问题。

更改行

DECLARE @result_string nvarchar(max)

DECLARE @result_string nvarchar(max) = ''

您尚未初始化@result_string变量,因此在执行

时它仍为null
SELECT @result_string = @result_string + ', ' + @temp

最终结果仍为空。

更正SQL Fiddle中的版本。