到 trim 列中的特定值

To trim particular value in a column

我有一个正则表达式 select 语句,如下所示:

SELECT REGEXP_REPLACE(nvl(l.text_1, l.text),'^'||21810||'=|\|'
                                    ||21810||'=', '|'||21810||'='||'B1') 
                                    FROM table_1 1

这会检查文本的值,如果文本有 21810,则添加 B1

例如:如果我的文本是 21614=C1||21810=C2

它的作用是:21614=C1|||||||21810=B1C2

但我希望删除此 C1 和 C2,后者始终后跟一个“=”,只需在 21810 中的“=”之后添加 B1

 21614=|||||||21810=B1

使用两步替换:

  1. 删除 = 之后和 | 之前的值:
    [^=|]+(\||$) 替换为 </code>。参见 <a href="https://regex101.com/r/O5yqaL/1/" rel="nofollow noreferrer">regex proof</a>。</p> </li> <li><p>接下来,添加<code>B1:
    (^|\|)21810=1810=B1。 参见 this regex proof