2015-10-13 27 views
1

我有一个名为Color_Table表,只有一个场Color,其内容为:
Blue
Blue
Blue
Red
现在我必须更新此表的内容,以便让所有的记录Color = Blue改为Color = Red,反之亦然。更新后的表看起来像:
Red
Red
Red
Blue
这里是我做过什么
UPDATE Color_Table SET Color = "TempRed" WHERE Color = "Blue";

UPDATE Color_Table SET Color = "Blue" WHERE Color = "Red";

UPDATE Color_Table SET Color = "Red" WHERE Color = "TempRed";

是否有任何其他地方,我们可以使用较少的数量做查询和没有额外的空间?SQL查询反转表内容

回答

2

您可以在一个update做到这一点:

update color_table 
    set color = (case when color = 'Blue' then 'Red' 
         when color = 'Red' then 'Blue' 
       end) 
    where color in ('Blue', 'Red'); 
0

如何:

UPDATE Color_Table SET Color = 
     CASE WHEN Color='Red' THEN 'Blue' 
       WHEN Color='Blue' THEN 'Red' 
       ELSE Color 
     END