如何在Oracle中以逗号分隔值修剪前导零?

时间:2017-11-21 16:24:42

标签: sql oracle plsql oracle-sqldeveloper oracle12c

我有一张表CUSTOMER (ID,NAME,CORR_ID)

示例数据 -

ID|Name|Corr_ID
1 |John|0239,002319
2 |Mary|000466,00000000054667

以下是我需要看到的输出 -

ID|Name|Corr_ID
1 |John|239,2319
2 |Mary|466,54667

1 个答案:

答案 0 :(得分:4)

regexp_replace(corr_id, '(,|^)0+', '\1')

将剥离前导零而不从1000或2003剥离零。

该函数查找逗号或字符串的开头(^) - 即(,| ^)表示 - 然后是字符“0”的一个或多个连续出现。它将每个匹配替换为第一对括号中的内容 - 即使用逗号或字符串的开头;它“摧毁”所有前导零。您需要使用(,| ^)仔细执行此操作,以确保不会从1000或2003中删除零。