字符串拆分

秋雨飘落 2012-03-01 11:23:44
业务表 tabl_a(a1 number,a2 varchar2(100))

目前的值是 11 1,1,2,3,4,5,6,7--这个长度可能不固定

我想拆分成为

11 1
11 1
11 2
11 3
11 4
11 5
11 6
11 7
如何实现呢????U
...全文
148 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yixilan 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 coolkisses 的回复:]
connect by level < 20
还需要再处理一下,考虑一下,如何把level写活一些。
[/Quote]
嗯。是呀,写这个SQL的时候,我想到了20是死的。但是没想到解决方案
秋雨飘落 2012-03-01
  • 打赏
  • 举报
回复
select * from table(splitstr('1,1,2',','));
fangkaifang 2012-03-01
  • 打赏
  • 举报
回复
感觉把这些取到的数据在程序里处理比较方便
benluobo 2012-03-01
  • 打赏
  • 举报
回复
用函数可以么
fangkaifang 2012-03-01
  • 打赏
  • 举报
回复
用substr 和instr函数 instr可以取到第一个,和最后一个,的位置
coolkisses 2012-03-01
  • 打赏
  • 举报
回复
connect by level < 20
还需要再处理一下,考虑一下,如何把level写活一些。
yixilan 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 zftang 的回复:]
业务表 tabl_a(a1 number,a2 varchar2(100))
目前的值是 11 1,1,2,3,4,5,6,7--这个长度可能不固定
我想拆分成为
11 1
11 1
11 2
11 3[/Quote]
用regexp_substr结合正则:
select sub.a1, sub.a2 from
(select a1,regexp_substr(a2, '[^,]+', 1, level) a2 from tabl_a
connect by level < 20)sub
where sub.a2 is not null;

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧