SQL 查询反转 table 内容
SQL query to invert table contents
我有一个名为 Color_Table
的 table,它只有一个字段 Color
,其内容是:
Blue
Blue
Blue
Red
现在我必须更新此 table 的内容,以便所有具有 Color
= Blue
的记录都更改为 Color
= Red
,反之亦然。更新后的 table 将如下所示:
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";
有没有其他地方我们可以使用更少的查询而不需要额外的 space ?
您可以一次性完成此操作 update
:
update color_table
set color = (case when color = 'Blue' then 'Red'
when color = 'Red' then 'Blue'
end)
where color in ('Blue', 'Red');
这个怎么样:
UPDATE Color_Table SET Color =
CASE WHEN Color='Red' THEN 'Blue'
WHEN Color='Blue' THEN 'Red'
ELSE Color
END
我有一个名为 Color_Table
的 table,它只有一个字段 Color
,其内容是:
Blue
Blue
Blue
Red
现在我必须更新此 table 的内容,以便所有具有 Color
= Blue
的记录都更改为 Color
= Red
,反之亦然。更新后的 table 将如下所示:
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";
有没有其他地方我们可以使用更少的查询而不需要额外的 space ?
您可以一次性完成此操作 update
:
update color_table
set color = (case when color = 'Blue' then 'Red'
when color = 'Red' then 'Blue'
end)
where color in ('Blue', 'Red');
这个怎么样:
UPDATE Color_Table SET Color =
CASE WHEN Color='Red' THEN 'Blue'
WHEN Color='Blue' THEN 'Red'
ELSE Color
END