Я пытаюсь обновить таблицу в SQL Server 2012 Management Studio. Вместо того чтобы писать четыре отдельных оператора Update
, я пытаюсь выяснить, возможно ли написать один запрос, который обновит одну и ту же таблицу для одного столбца четырьмя различными способами в зависимости от того, какое значение столбца хранится.
Предположим, у меня есть таблица с именем table_food
со следующей структурой
|Customer|Preference|
+--------+----------+
|John |McDs |
|Div |KFC |
|Paul |KFC |
|Pablo |Wasabi |
Моя идея состоит в том, чтобы обновить столбец Preference
до новых значений, и запрос, который я написал, был:
UPDATE table_food
SET Preference =
CASE WHEN Preference = 'McDs' Then 'Burger'
WHEN Preference = 'KFC' Then 'KingsMeal'
END
Теперь в моей фактической таблице для предпочтения выбрано только 8 различных опций, и мне просто нужно два обновления 4. (Я только что сделал два в качестве примера выше, но у меня есть четыре утверждения когда ... так что простоеще две строки)
Когда я запускаю запрос, он показывает гораздо больше строк, на которые влияют, и проверяет результаты после того, как я заметил, что теперь есть только одна опция, показанная «Burger» со счетчиком 8, и все остальные строки былиустановите на null
. Я что-то упускаю?