如何用括号替换字符串的最后一位

时间:2019-08-12 10:18:10

标签: sql oracle replace

如何用括号替换字符串的最后一位

考虑一个具有A列的表

A
-------
12345
123455
123567
1234

预期结果:

1234(5)
12345(5)
12356(7)
123(4)

1 个答案:

答案 0 :(得分:3)

这里有两个选项:

  • 使用substr的人,
  • 另一个正则表达式

SQL> with test (a) as
  2    (select 12345  from dual union all
  3     select 1234   from dual union all
  4     select 123567 from dual
  5    )
  6  select a,
  7         substr(a, 1, length(a) - 1) || '(' || substr(a, -1) || ')' result,
  8         regexp_replace(a, '(.)$', '(\1)') result2
  9  from test;

         A RESULT               RESULT2
---------- -------------------- --------------------
     12345 1234(5)              1234(5)
      1234 123(4)               123(4)
    123567 12356(7)             12356(7)

SQL>