帮助TSQL查询

时间:2010-07-12 08:28:21

标签: sql sql-server tsql

我正在使用SQL-Server 2005 Standard。

我的Users表包含以下列:

userID(int),
userImage(varchar),
userText(varchar),
userLastVisit(smalldatetime),
isActivated (bit),
userHobby1 (bit),
.....
userHobby10 (bit)
userCharacteristic1 (bit),
.....
userCharacteristic10 (bit)

我做了6个查询来选择

  1. 未在网站上停留两周的用户
  2. 没有图片的用户
  3. 没有文字的用户
  4. 没有单一爱好的用户
  5. 没有单一特征的用户
  6. 未激活其帐户的用户
  7. 现在我需要获得的是具有需要告知的操作的用户列表。

    例如,userID 2004没有图像,也没有单一的爱好。每个用户只应在列表中出现一次,并且需要完成所有操作。

    提前致谢。

1 个答案:

答案 0 :(得分:2)

尝试字符串连接和CASE WHEN:

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