【问题标题】:Replace string in a column using query in Oracle在 Oracle 中使用查询替换列中的字符串
【发布时间】:2013-09-06 07:21:42
【问题描述】:

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

【问题讨论】:

  • yu 可以通过更新查询来完成

标签: sql oracle str-replace


【解决方案1】:

Tech on the Net 的以下内容可能会有所帮助:

REPLACE('用户房屋名称为ABC', '房屋名称', '房屋编号');

将返回“用户门牌号为 ABC”

替换('123tech123', '123');将返回“技术”

替换('222tech', '2', '3');将返回“333tech”

替换('0000123', '0');将返回“123”

REPLACE('房屋名称', '房屋名称', '房屋编号');会回来 '门牌号'

【讨论】:

  • @Tom Sebastian 在您的选择或更新查询中使用它...对您有用
  • 谢谢。我使用这样的 REPLACE 函数:update PATIENT set ADDRESS = REPLACE(ADDRESS, 'House Name', 'House Number'); 然后所有行的 ADDRESS 列都会正确更新。
  • 您好,当从其他地方引用时,请确保您授予他们信用;如果你不这样做,那就是抄袭。
【解决方案2】:

只需执行:

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 子句

【讨论】:

  • 好的。我们可以避免 where 子句吗?
  • 实际上你可以,除非某些行包含另一个字符串(然后也会覆盖它们)。
  • 我的意思是这样使用。 REPLACE(, 'House Name', 'House Number')。我不确定,但它对我有用。
  • 为什么更新单个值需要永远
猜你喜欢
  • 2023-02-23
  • 2016-01-13
  • 2016-07-11
  • 2014-07-03
  • 2016-09-03
  • 2014-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多