2015-10-13 60 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