创建电子邮件用户列表?

时间:2013-07-30 12:05:49

标签: sql sql-server

我正在尝试创建两个电子邮件地址列表,一个是当前登录到数据库的所有用户的列表,另一个是未登录的用户。

我似乎无法填充@usersin和@usersout变量,我从最后两个SELECT中得到一个NULL输出......任何人都可以关注我下面的代码并告诉我是什么错了吗?

SELECT @maxurn = MAX(ID) FROM ##tmp2
SET @urn = 1
WHILE @urn <= @maxurn

BEGIN

SET @usersin = @usersin + (SELECT [USER_NAME] + ';' FROM ##tmp2 WHERE [LoggedIn]='YES' 
AND ID = @urn FOR XML PATH('')) 

SELECT @urn = @urn + 1
END

SET @urn = 1
WHILE @urn <= @maxurn

BEGIN

SET @usersout = @usersout + (SELECT [USER_NAME] + ';' FROM ##tmp2 WHERE [LoggedIn]='NO'
AND ID = @urn FOR XML PATH('')) 

SELECT @urn = @urn + 1
END

SELECT @usersin
SELECT @usersout

1 个答案:

答案 0 :(得分:1)

看起来似乎是设计上的。如果将NULL与某个值连接起来,则结果为NULL:

SQL Server String Concatenation with Null

因此您尝试设置@usersin和@usersout失败,因为它们开始时为NULL。直接分配(不连接),或给它一个初始值(例如空字符串)。