oracle 如何将一个字段内容拆分多行显示

表的格式是两列多行,A列显示的是ID,B列显示的是多个编码及名称,每个编码跟名称为一组,多组信息间用分号隔开,每组编码跟名称之间用空格隔开,数据样式为:AB101a;02... 表的格式是两列多行,A列显示的是ID,B列显示的是多个编码及名称,每个编码跟名称为一组,多组信息间用分号隔开,每组编码跟名称之间用空格隔开,数据样式为:
A B
1 01 a;02 b;03 c;04 d
2 05 e;06 f;07 g
如何编写语句实现查询结果为

A B C
1 01 a
1 02 b
1 03 c
1 04 d
2 05 e
2 06 f
2 07 g
举的例子里编码都是两位的,但实际编码位数不固定,最好能利用空格去拆分
展开
 我来答
帐号已注销
2018-05-18 · 超过31用户采纳过TA的回答
知道答主
回答量:111
采纳率:100%
帮助的人:43.4万
展开全部
用正则表达式,应该能解决你的问题
例子,供参考,具体稍作调整
select regexp_substr('01 a;02 b;03 c;04 d', '[^;]+', 1, level)
from dual
connect by level <= regexp_count('01 a;02 b;03 c;04 d', '[^;]+')
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式