SQLite 在一个查询中执行多个 UPDATES

Chi*_*itz 3 sql sqlite

在表颜色中,有一个颜色列。我需要根据不同的情况对此列中的值进行 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 次更新吗?

注意:我的实际值比这更复杂,因此忽略简单函数以使值大写

Jib*_*ran 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作为表名称,