Sql 如何在Oracle中的特定位置添加分隔符
嗨,我有一根这样的绳子Sql 如何在Oracle中的特定位置添加分隔符,sql,regex,string,oracle,Sql,Regex,String,Oracle,嗨,我有一根这样的绳子 ABCDEFGH I want the output to be ABCDEF.GH 如果是像1234567这样的数字,那么我希望输出是12345.67 基本上,我希望delimeter(.)位于最后2个字符之前。您可以使用正则表达式: with v_data(val) as ( select '123456' from dual union all select 'abcdef' from dual union all select '678' from
ABCDEFGH I want the output to be ABCDEF.GH
如果是像1234567这样的数字,那么我希望输出是12345.67
基本上,我希望delimeter(.)位于最后2个字符之前。您可以使用正则表达式:
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
这和
- 一个或多个数字
(在组1中捕获)(\d+)
- 后面紧跟着两个数字
(在第2组中捕获它们)(\d{2})
并将其替换为组#1的内容,然后是组#2:
\1的内容。\2
?INSERT()在指定位置插入一个子字符串,直到@MarcB指出的指定字符数,字符串函数是您的朋友。您可能需要将INSTR()
与LENGTH()
、LEFT()
、RIGHT()
、和CONCAT()
或@Kabulan0lak所说的组合。哈很好的函数…@MarcB链接指向MySQL文档,而如果我没有弄错的话,OP想要一个针对Oracle的解决方案。?我还想添加分隔符。@user2647888请相应地更新您的问题。样本输入和预期输出将是理想的。