在表颜色中,有一个颜色列。我需要根据不同的情况对此列中的值进行 5 次更新。
SET Color = 'Blue' WHERE Color = 'blue'
SET Color = 'Green' WHERE Color = 'green'
SET Color = 'Yellow' WHERE Color = 'yellow'
SET Color = 'Brown' WHERE Color = 'brown'
SET Color = 'Orange' WHERE Color = 'orange'
Run Code Online (Sandbox Code Playgroud)
我可以在一个查询中对表进行这 5 次更新吗?
注意:我的实际值比这更复杂,因此忽略简单函数以使值大写
您可以使用CASE表达式并决定要设置的值Color。
UPDATE [YourSchema].[Colors]
SET Color= CASE
WHEN Color = 'blue' THEN 'Blue'
WHEN Color = 'green' THEN 'Green'
WHEN Color = 'yellow' THEN 'Yellow'
WHEN Color = 'brown' THEN 'Brown'
WHEN Color = 'orange' THEN 'Orange'
END
WHERE Color IN ('blue', 'green', 'yellow', 'brown', 'orange')
Run Code Online (Sandbox Code Playgroud)
注意:如果您有默认架构,则使用dbo.Colors作为表名称,