SQL在数字-α-数字之间添加' - '

时间:2012-06-21 13:05:47

标签: sql oracle teradata

我有一个有趣的方案是在数字,字母和数字之间添加- (minus sign)

示例:

  

输入:123AB56;输出:123-AB-56;

     

输入:56XYZ777;输出:56-XYZ-777;

源数据没有常规模式。

对此的任何意见表示赞赏。

1 个答案:

答案 0 :(得分:3)

如果是相对较晚的Oracle,那么这些任务就会regexp_replace

SELECT
  REGEXP_REPLACE(YOURFIELD,
                 '([[:digit:]]+)([[:alpha:]]+)([[:digit:]]+)',
                 '\1-\2-\3') REPLACED_RESULTS
  FROM YOURTABLE;