簡體   English   中英

在Oracle的單個列中消除多個定界符

[英]Eliminating multiple delimiters in single column in oracle

我的表有單列信息

Info

+名稱+++++++ + ano +++++++++ agender ++++++++++++

我應該得到像

aname+ano+agender+arace

我必須消除多個定界符並替換為單個+我嘗試使用regexp_replace和trim並按以下方式工作

    select trim(REGEXP_REPLACE('+aname + + + + + + +  
+ano + + + + + + + +   
+agender+ + + + + + + + + + +   
+arace', '\ + + ', '+'),'+') from dual; 

我將輸出作為aname +++++++ ano ++++++ agender ++++++++++ arace

這個正則表達式可以解決這個問題:'\\ ++'

select REGEXP_REPLACE('+aname++++++ano+++++++++agender++++++++++++arace', '\++', '+') from dual;

要擺脫前導+(如您的示例),請使用ltrim(或修剪也刪除尾隨+)。

select ltrim(REGEXP_REPLACE('+aname++++++ano+++++++++agender++++++++++++arace', '\++', '+'),'+') from dual;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM