#sql-server
#sql-сервер
Вопрос:
Я пытаюсь вернуть и изменить все записи в столбце login
для каждой записи, значение которой = «Изменить этот текст» на «Запрашивающий». Приведенное ниже работает, но возвращает только 2 значения: «Пользователь» и «Запрашивающий», хотя есть 7 других записей, где login
= «Изменить этот текст»
declare @MainHospital varchar(50)='Hospital1';
SELECT CASE login
WHEN 'Change this text' THEN 'Requester'
ELSE 'User'
END
FROM Survey
WHERE MainHospital = @MainHospital
GROUP BY MainHospital, login
Ответ №1:
Вы группируетесь по главному госпиталю и логину, поэтому для каждой больницы вы обрабатываете только 2 случая. Группируя все результаты вместе, вы удаляете повторяющиеся строки.
Если вы удалите группировку, и она вернет 7 строк:
SELECT CASE login
WHEN 'Change this text' THEN 'Requester'
ELSE 'User'
END
FROM Survey
WHERE MainHospital = @MainHospital
В противном случае включите другой уникальный столбец, который предотвратит группировку.