修剪Oracle字符串并添加破折号

时间:2018-08-18 23:59:49

标签: oracle oracle11g

我有一个18字符串字段,需要删除第1个5个字符,然后在第11个和第15个段之后添加破折号。有没有一种方法可以做到这一点更新?

000003061114150000

306111-4150-000

谢谢!

2 个答案:

答案 0 :(得分:0)

简单的SUBSTR串联即可完成工作:

SQL> with test (col) as
  2    (select '000003061114150000' from dual)
  3  select
  4    substr(col, 6, 6)  ||'-'||
  5    substr(col, 12, 4) ||'-'||
  6    substr(col, 16) result
  7  from test;

RESULT
---------------
306111-4150-000

SQL>

答案 1 :(得分:0)

请参考一行选择语句

SELECT
    SUBSTR(
        LTRIM('000003061114150000', 10),
        1,
        6
    )|| '-' || SUBSTR(
        LTRIM('000003061114150000', 10),
        7,
        4
    )|| '-' || SUBSTR(
        LTRIM('000003061114150000', 10),
        11
    )
FROM
    dual;

结果

306111-4150-000