我有一张城市表。我必须用pune和pune代替indore indore
city output table
----- ------------
indore pune
pune indore
indore pune
pune indore
indore pune
答案 0 :(得分:1)
有两种方式,DECODE
或CASE
表达。
1.使用DECODE
select decode(city, 'indore', 'pune', 'pune', 'indore', city) from table
2.使用CASE
select case when city = 'indore' then 'pune' when city = 'pune' then 'indore' else city end
我不明白你的意思是替换。你想做update
还是只想这样表现?无论如何,如果你想显示,查询将完美地工作。要进行更新,您需要将其转换为更新语句。
编辑关于OP的新请求。
您无法在更新语句中使用decode。但是,您可以使用MERGE
声明。
MERGE INTO table a
USING (
select city, decode(city, 'indore', 'pune', 'pune', 'indore', city) city_decode
from table) b
ON (a.city = b.city)
WHEN MATCHED
THEN
UPDATE SET a.city = b.city_decode
/