如何在Oracle中的特定位置添加分隔符

时间:2014-06-24 14:01:23

标签: sql regex string oracle

嗨,我有一个像这样的字符串

ABCDEFGH I want the output to be ABCDEF.GH

如果它是1234567之类的数字,那么我希望输出为12345.67

基本上我想要最后2个字符之前的分隔符(。)。

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

with v_data(val) as (
  select '123456' from dual union all
  select 'abcdef' from dual union all
  select '678' from dual
)
select 
  val, 
  regexp_replace(val, '(\d+)(\d{2})', '\1.\2') 
from v_data

匹配

  • 一个或多个数字(\d+)(在第1组中捕获它们)
  • 后跟两个数字(\d{2})(在第2组中捕获它们)

并将其替换为组#1的内容,然后是.,后跟组#2的内容:\1.\2