暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 在记录中的数字和字母之间添加空格

askTom 2018-03-06
270

问题描述

嗨,汤姆,

我想在一列中的数字和字母之间添加空格。
例如: somestreet 22a-> Somestreet 22 A
旧街5d-> 旧街5 D
其他新树134B-> 其他新街134 B

同样,对于一列中的所有此类记录。

你能帮我这个吗?

提前感谢 :-)

专家解答

一点正则表达式就可以了:

with rws as (
  select 'somestreet 22a' str from dual union all
  select 'oldstreet 5d' str from dual union all
  select 'othernewtreet 134B' from dual
)
  select regexp_replace(str, '([[:digit:]]+)([[:alpha:]]+)', '\1 \2') new_str
  from   rws;

NEW_STR               
somestreet 22 a       
oldstreet 5 d         
othernewtreet 134 B   


这意味着:

-([[:digit:]] )([[:alpha:]] ) => 搜索一个或多个数字,后跟一个或多个字母
-\ 1 \ 2 => 返回第一组 (数字)。后面是一个空格。其次是第二组 (字母)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论