我需要一些查询帮助我在同一列中交换数据,如下所示:
ID Name Notebook Sales Pen Sales
1 33 2 3
2 33 5 6
3 5 8 9
4 7 2 3
5 35 5 6
6 35 8 9
ID Name Notebook Sales Pen Sales
1 35 2 3
2 35 5 6
3 5 8 9
4 7 2 3
5 33 5 6
6 33 8 9
在这个示例中,我将名称“33”替换为名称“35”,并保留每个名称的原始信息。
我正在处理5000多行,所以一个接一个地做一些事需要一段时间。
我想要的唯一方法是将名称为'33'的那个转换为'35'但是我会以这样的结尾:
ID Name Notebook Sales Pen Sales
1 35 2 3
2 35 5 6
3 5 8 9
4 7 2 3
5 35 5 6
6 35 8 9
然后他们将混合制作难以将第一个'35'变为'33'。
希望你能帮助我解决这个问题并提前感谢。
答案 0 :(得分:2)
您可以在一个update
(或select
语句)中执行此操作:
update t
set name = (case when name = 33 then 35 else 33 end)
where name in (33, 35);
在更新中,更改在语句结束并且更改提交到数据库之前不可见。因此,作业右侧的值来自" old"表的版本。