REGEXP_SUBSTR ( '1,2,3,4' , '[^,]+' , 1 , ROWNUM ) dual CONNECT BY ROWNUM <= LENGTH ( '1,2,3,4' ) - LENGTH ( regexp_replace ( '1,2,3,4' , ',' , '' ) ) + 1 ; 例如输出 ‘1,2,3,4’多行输出sql如下:SELECT REGEXP_SUBSTR( '1,2,3,4', '[^,]+', 1, ROWNUM )FROM dual CONNECT BY ROWNUM &lt;= LENGTH( '1,2,3,4' ) - LENGTH( regexp_replace( '1,2,3,4', ',', '' )) + 1; select regexp_substr('444.555.666', '[^.]+', 1, level) col from dual connect by level <= regexp_count('444.555.666', '\.') + 1 输出 结果: 多行 拆分 如果数据表存在 多行 数据需要拆分,也可以在原表上使用connect+正则的方法:
在数据存储 数据库 中,常常存在信息以特殊符 隔开形式存储在一个字段里,如下表:当我们需要把“去过的城市”字段以逗 (,)拆分成 多行 时,如下表:这时就会涉及到列转行,下面跟着我的例子,一起来见证奇迹吧: 插入测试数据: 查询 sql 将代码拷贝使用时,需要更改表名、字段名、 分隔 字符等(注:使用的时候还需将将N替换为 分隔符 的长度,如分割符“、”,长度位1,则将N替换位1,一共4处)。 可以从上截图看出,已经将userinfomation表的city 字段根据“、” 分割后,形成 多行 数据。赶快去试试吧。
oracle 字符串 进行拆分 运行环境: oracle 11g、pl/ sql developer 利用 oracle 程序块将"1,2,3,“这个 字符串 进行切割,取出"1”、“2”、"3"来。 可以利用substr函数和instr函数这俩函数,substr函数作为手术刀,instr函数作为标记切割位置的标尺(有点像操作系统里的head,tail那一套) 先回顾一下这俩函数的语法 SUBSTR( 字符串 ,截...
ORACLE 中将带 分隔符 字符串 拆分成 多行 ,有很多方法,我将多种常见和不常见的拆分方法进行了收集整理。 通常这个操作被归类为行列转换的范畴。 为了方便测试,我将每一种方法封装成一个函数,返回一个 字符串 集合。 0.创建自定义集合类型 SQL &gt; create type t_vchars as table of varchar2(4000); Type created
最近同事遇到一个问题,需要把一个字段内容按照; 分隔 多行 ,通过度娘和查资料终于解决了这个问题,下来就来絮叨一下. 刚开始查到的都是replace、substr和instr连用 replace语法: replace( 字符串 ,要被替换的字符,替换后的字符) substr语法: substr函数格式 (俗称:字符截取函数) 格式1: substr(string string, int a, int b); 格式2:substr(string string, int a) ;
regexp_substr是 Oracle 数据库 中的一个函数,用于在一个 字符串 中查找并返回符合某个模式的子串。它可以实现 字符串 分隔符 切割功能。 regexp_substr函数有三个参数:输入 字符串 、匹配模式以及起始位置。其中,输入 字符串 就是要被切割的原始 字符串 ;匹配模式是一个正则表达式,用于 指定 分隔符 的模式;起始位置是可选参数,用于 指定 从哪个位置开始查找匹配的子串,默认为1。 例如,假设有一个 字符串 :"Hello,World,Welcome,to, Oracle ",我们想使用逗 作为 分隔符 ,切割出每个单词。可以使用下列 SQL 语句实现: SELECT regexp_substr('Hello,World,Welcome,to, Oracle ', '[^,]+', 1, LEVEL) FROM dual CONNECT BY regexp_substr('Hello,World,Welcome,to, Oracle ', '[^,]+', 1, LEVEL) IS NOT NULL; 其中,'Hello,World,Welcome,to, Oracle '是输入 字符串 ;'[^,]+'是匹配模式,表示匹配一个或多个非逗 字符;1是起始位置;LEVEL是层次关系的指示器,用于递归地返回每个匹配的子串。 执行以上 SQL 语句,将得到以下结果: Hello World Welcome Oracle 即将原始 字符串 按逗 分隔 成多个子串。这就是使用regexp_substr函数实现 字符串 分隔符 切割的方法。