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

问题描述 投票:4回答:2

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

sql oracle str-replace
2个回答
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');将返回'门牌号码'


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'

编辑:

如果所有行都包含相同的字符串(House Number),则可以省略WHERE子句

© www.soinside.com 2019 - 2024. All rights reserved.