[英]Extract only alphabetic characters from VARCHAR column
我有一個VARCHAR2
類型的列,其文本類似於'12-MAR-2014,,1234,DATA,VALUE,12/03/14,,124,End'
。 我需要輸出'%DATA%VALUE%End%'
。 即用逗號','
分隔的文本。 只需要選擇字母表,省略日期或數字或特殊字符。 就像是,
select some_function('12-MAR-2014,,1234,DATA,VALUE,12/03/14,,124,End') as output from dual;
OUTPUT
---------
%DATA%VALUE%End%
編輯:
另一個需要保留字母數字值的要求:
select some_function('12-MAR-2014,,1234,DATA65,VALUE,12/03/14,,124,End') as output from dual;
OUTPUT
---------
%DATA65%VALUE%End%
您可以使用regexp_replace()
。 我認為表達式是這樣的:
select regexp_replace(col, '([^a-zA-Z]+)', '%')
不幸的是,我現在無法測試它(而且SQL Fiddle已關閉)。
這樣的事情可以幫助你:
select regexp_replace('12-MAR-2014,,1234,DATA,VALUE,12/03/14,,124,End','[[0-9]{2}-(JAN|FEB|MAR|APR|JUN|JUL|AUG|SEP|OCT|NOV|DEC)-[0-9]{4}]*|[^a-zA-Z]+|$','%') from dual
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.