急急急!在线求一个SQL语句 !

xiexingxin 2011-04-21 04:06:31
要求 用一条SELECT 语句 实现下面这样的功能!

比如一个字符串 v_str:= '北京~上海~成都~天津';


用一条SELECT 语句查询得出结果为:
select 相应的转换(v_str) from dual;

北京
上海
成都
天津








...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssqtjffcu 2011-04-21
  • 打赏
  • 举报
回复

with t as(
select '~北京~上海~成都~天津~' str from dual
)
select substr(str,
instr(str, '~', 1, rownum) + 1,
instr(str, '~', 1, rownum + 1) - instr(str, '~', 1, rownum) - 1)
from t connect by rownum<length(str) - length(replace(str, '~', '')) - 1

xiexingxin 2011-04-21
  • 打赏
  • 举报
回复
啊! 真的可以啊! 谢谢3楼的太厉害了!
gelyon 2011-04-21
  • 打赏
  • 举报
回复

with tab as(
select '北京~上海~成都~天津' id from dual
)
--上面是测试数据,sql如下:
select substr('~'||id||'~',instr('~'||id||'~','~',1,level)+1,
instr('~'||id||'~','~',1,level+1)-instr('~'||id||'~','~',1,level)-1) newid
from tab
connect by
level <= length('~'||id||'~') - length(replace('~'||id||'~', '~', ''))-1

--result:

NEWID
---------
北京
上海
成都
天津

xiexingxin 2011-04-21
  • 打赏
  • 举报
回复
有没有人会写啊? 求救!

17,086

社区成员

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

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