我正在尝试更新SQL Server 2012 Management Studio中的表。与尝试编写四个单独的Update
语句不同,我试图查看是否有可能编写一个查询,该查询将根据列的值存储四种以不同的方式更新一列的同一张表。 / p>
假设我有一个名为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。(在上面的示例中,我刚刚做了两个,但是我有四个when语句……所以另外两个行)
当我运行查询时,它显示受影响的行更多,并检查结果后,我注意到现在只有一个选项显示为“ Burger”,计数为8,所有其他行均设置为null
。有什么我想念的吗?