2

在一个表中有data.like this

ID      NAME
1   Apple
2   Apple
3   Apple
4   orange
5   orange
6   orange
7   Apple
8   Apple
9   Apple
10  orange
11  orange
12  orange

数据可能超过 1000 次。现在需要交换/更改/更新苹果到橙色和橙色到苹果。

4

2 回答 2

7

您可以caseupdate声明中使用 a 来执行此操作:

update t
    set name = (case when name = 'Apple' then 'Orange'
                     when name = 'Orange' then 'Apple'
                end)
    where name in ('Apple', 'Orange');

这是标准 SQL,适用于 MySQL 和 Oracle。

如果您不需要实际更改名称,而只是将其换成 a select,则执行查询中的逻辑:

select (case when name = 'Apple' then 'Orange'
             when name = 'Orange' then 'Apple'
             else name
        end) as name
from t;
于 2013-08-21T11:30:51.490 回答
0
update  YourTable
set     name = 
        case name
        when 'Apple' then 'Orange'
        when 'Orange' then 'Apple'
        end 
 where  name in ('Apple', 'Orange')
于 2013-08-21T11:30:24.413 回答