惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 【当耐特】
小众软件
小众软件
S
SegmentFault 最新的问题
GbyAI
GbyAI
量子位
爱范儿
爱范儿
L
LangChain Blog
Vercel News
Vercel News
A
About on SuperTechFans
腾讯CDC
博客园_首页
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
V2EX
V
Visual Studio Blog
美团技术团队
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium

博客园 - MyFavorite

成长、改变、突破 软件工程相关整理 INCLUDE COMMON FILES IN HTML USING JQUERY Oracle取TOP N条记录 use CheckBoxMultipleChoice in wicket 5个必须掌握的maven命令 根据对象名获取对象 外网SQL服务器设置 VB6.0调用SetTimer实现定时器 cmd命令控制台窗口一闪就消失解决办法 jdbc访问数据库 - MyFavorite - 博客园 java与MSSQL2000连接 - MyFavorite - 博客园 关于java CountDownLatch java InputStream读取数据问题 MyEclipse中防止代码格式化时出现换行的情况的设置 java监控多个线程的实现 TCP连接状态 Java定时器代码 java下的日期函数实现
Oracle:分割字符串
MyFavorite · 2012-10-29 · via 博客园 - MyFavorite

ids                           id

3,4,5                        7

13,14,15,16             17

想要使用sql,实现将ids按照逗号分割后查询到如下记录:

ids                           id

3                              7

4                              7

5                              7

13                            17

14                            17

15                            17

16                            17 

在Oracle9i以上版本中,可以使用regexp_substr实现。具体sql语句如下:

select id,ids from(

  select regexp_substr(ids, '[^,]+',1,lvl) ids, lvl, id from tbl,

  (select level lvl from dual connect by

  level < =(select max(length(regexp_replace(ids,'[^,]','')))+1 max_tokens from tbl))

) where ids is not null order by lvl