TSQL查询帮助

TSQL查询帮助,sql,sql-server,tsql,Sql,Sql Server,Tsql,我使用的是SQLServer2005标准 我有一个包含以下列的用户表: userID(int), userImage(varchar), userText(varchar), userLastVisit(smalldatetime), isActivated (bit), userHobby1 (bit), ..... userHobby10 (bit) userCharacteristic1 (bit), ..... userCharacteristic10 (bit) 我做了6个查询来选择

我使用的是SQLServer2005标准

我有一个包含以下列的用户表:

userID(int),
userImage(varchar),
userText(varchar),
userLastVisit(smalldatetime),
isActivated (bit),
userHobby1 (bit),
.....
userHobby10 (bit)
userCharacteristic1 (bit),
.....
userCharacteristic10 (bit)
我做了6个查询来选择

  • 已经两周没有访问网站的用户
  • 没有图片的用户
  • 没有文本的用户
  • 没有单一爱好的用户
  • 没有单一特征的用户
  • 未激活其帐户的用户
  • 现在我需要得到的是需要告知其操作的用户列表

    例如,UserID2004没有图像,也没有任何爱好。每个用户在列表中只应出现一次,并且其所有操作都需要完成


    提前感谢。

    在以下情况下尝试字符串连接和大小写:

    SELECT UserID,
        CASE WHEN UserImage IS NULL THEN 'no image.' ELSE '' END +
        CASE WHEN UserText IS NULL THEN 'no text.' ELSE '' END +
        ... -- more CASE WHEN conditions
        AS Info
    WHERE (UserImage IS NULL) 
       OR (UserText IS NULL)
       ... -- OR same conditions as in CASE WHEN clauses
    

    创建临时表以便插入位和用户ID不是更好吗?这是一个返回唯一用户ID和所有必需信息的查询。如果使用临时表,则需要为每个条件使用INSERT SELECT和UPDATE语句(包括临时表的内部和外部联接),因为多个条件可能与单个用户匹配(如在OP中)。