使用Oracle中的查询替换列中的字符串

时间:2013-09-06 07:21:42

标签: sql oracle str-replace

在我的一个oracle表中,每行的一列中都有一个字符串'House Name'。我需要用'门牌号'代替它。我是否可以执行更新查询以在所有行中查找和替换此字符串。或者是否有任何内置函数。

2 个答案:

答案 0 :(得分:5)

以下Tech on the Net可能有所帮助:

  

REPLACE('用户住宅名称为ABC','住宅名称','门牌号');

     

将返回'用户门牌号码为ABC'

     

REPLACE('123tech123','123');会回归'科技'

     

REPLACE('222tech','2','3');将返回'333tech'

     

REPLACE('0000123','0');将返回'123'

     

REPLACE('House Name','House Name','House Number');会回来的   '门牌号'

答案 1 :(得分:4)

执行:

UPDATE <TABLE-NAME> SET <COLUMN-NAME> = 'House Number' WHERE <COLUMN_MAME> = 'House Name'

这当然只有在列包含此字符串时才有效。否则,您应该在上面的更新声明中使用Fayeq所回答的替换功能

UPDATE <TABLE-NAME> SET <COLUMN-NAME> = REPLACE('House Name', 'Name', 'Number') WHERE <COLUMN_MAME> = 'House Name'

编辑

如果所有行包含相同的字符串(门牌号)

,则可以省略WHERE子句