在oracle sql数据列的文本中间追加

在oracle sql数据列的文本中间追加,sql,oracle,Sql,Oracle,我需要在文本中间添加文本 1例:现有文本为:单克隆抗标记,克隆6F7 结果:单克隆抗FLAG,克隆6F7 2 EX:现有文本为:抗-100-KD亚单位 结果:抗-100kd亚单位 我想在出现反义和单克隆术语的地方加上标签 select * from table where regexp_like(colnanme, '^(Monoclonal Anti|Anti)') 你能建议我如何写这个吗。对于select,我已经写了查询。你可以使用replace和like select replace(

我需要在文本中间添加文本

1例:现有文本为:单克隆抗标记,克隆6F7

结果:单克隆抗FLAG,克隆6F7

2 EX:现有文本为:抗-100-KD亚单位

结果:抗-100kd亚单位

我想在出现反义和单克隆术语的地方加上标签

select * from table where regexp_like(colnanme, '^(Monoclonal Anti|Anti)')

你能建议我如何写这个吗。对于select,我已经写了查询。

你可以使用replace和like

 select replace(colname, 'Anti', '"<HIDE> Anti-</HIDE> ) 
 from table where colname like '%Anti%'
 and colname not like 'Monoclonal Anti%';
对于组合情况,您可以在更换导线时使用案例

  select case when  colname like '%Monoclonal Anti%'  
                then replace(colname, 'Monoclonal Anti', '"<HIDE> Monoclonal Anti-</HIDE> ) 
              when  colname like '%Anti%'  
                 then replace(colname, 'Anti', '"<HIDE> Anti-</HIDE> ) 
               else colname
              end 
 from table where colname like '%Anti%';

所预测的特定正则表达式解

-- Start test data
with test_data as
    (select 'Monoclonal Anti-FLAG, Clone 6F7' as test_string from dual union all
     select 'Anti-100-KD subunit' from dual)
-- End test data     
select test_string,
       REGEXP_REPLACE(test_string,'(Monoclonal Anti-|Anti-)','<HIDE>\1</HIDE>')
from   test_data;


"TEST_STRING"                     "Result"
"Monoclonal Anti-FLAG, Clone 6F7" "<HIDE>Monoclonal Anti-</HIDE>FLAG, Clone 6F7"
"Anti-100-KD subunit"             "<HIDE>Anti-</HIDE>100-KD subunit"

你的意思是你同时有“抗”和“单克隆抗”??答案更新是的,我在QueryTank中有两个单克隆Anti | Anti,但我必须在一个查询中更新这两个术语的查询。@AnimeshSheolikar-几乎肯定会有其他使用正则表达式的解决方案。请注意,scaisEdge的解决方案虽然更复杂,但可能更快,因为它避免了正则表达式。它肯定会得到我的投票。我还要注意,如果OP需要返回所有行,而不仅仅是那些包含子字符串Anti-,则不需要where条件,而是需要在CASE表达式中添加一个else colname。追加是什么意思?是否需要在SELECT查询中追加,以便进一步处理,或者您需要更新现有表中的数据吗?UPDATE语句不需要追加。但我得到的想法是释放的。谢谢@released。你的回答,你的建议和我的要求非常接近。