鉴于下表:
... | item | type | ...
... | A | 1 | ...
... | B | 2 | ...
... | A | 2 | ...
... | A | 3 | ...
... | B | 3 | ...
... | A | 2 | ...
通过配对(A1,B2,A2等)拨打电话。 表中有一个错误,其中A3实际上应该是C3。
我想编写一个返回行的查询,如果行返回A3,则将项目列更改为C.
不起作用的示例查询:
SELECT (item like 'A' ? (type == 3? 'C' : 'A') : item) as "item", type from table;
我想要的输出是:
"item" | type
A | 1
B | 2
A | 2
C | 3
B | 3
A | 2
这样做的正确方法是什么?如果可能的话?
答案 0 :(得分:4)
update table tablename
set item='C'
where type=3 and item='A'
如果您不需要在表格中更新这些值,但是为了获得替换后的值,那么
select
case when item='A' and type=3 then 'C'
else item
end as newitem, type from tablename