Помощь с запросом TSQL - PullRequest
0 голосов
/ 12 июля 2010

Я использую 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. пользователей, которые не активировали свою учетную запись

Теперь мне нужно получить список пользователейс действиями, о которых нужно рассказать.

Например, userID 2004 не имеет изображения и не имеет ни одного хобби.Каждый отдельный пользователь должен появиться в списке только один раз, и все его действия должны быть выполнены.

Заранее спасибо.

1 Ответ

2 голосов
/ 12 июля 2010

Попробуйте объединение строк и 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...