oracle 取字符串/后面的字符

薛果果 2012-08-16 12:39:32
有一个字段 name
gaga/gaga/aa
fa/gda
dfa/gads/ga/ga
比如有这些值,我怎么取这个字段最后一个/后面的值
name
aa
gda
aa

结果这样
...全文
394 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
薛果果 2012-08-16
  • 打赏
  • 举报
回复
--举例如下,你的表自已替换下就可以了
select replace(regexp_substr('gaga/gaga/aa','/[[:alpha:]]*$'),'/','') from dual;


regexp_substr 说这个是无效标示符哎
fw0124 2012-08-16
  • 打赏
  • 举报
回复
select substr('dfa/gads/ga/ga', instr('dfa/gads/ga/ga', '/', -1) + 1) from dual;

先利用instr反向查找/的位置,然后substr取子字符串
人生无悔 2012-08-16
  • 打赏
  • 举报
回复

--举例如下,你的表自已替换下就可以了
select replace(regexp_substr('gaga/gaga/aa','/[[:alpha:]]*$'),'/','') from dual;
碧水幽幽泉 2012-08-16
  • 打赏
  • 举报
回复

--方法1:
SQL> with tmp as
2 (
3 select 'gaga/gaga/aa' name from dual union all
4 select 'fa/gda' name from dual union all
5 select 'dfa/gads/ga/ga' name from dual
6 )
7 select replace(regexp_substr(name,'/[[:alpha:]]*$'),'/','') name from tmp;

NAME
----------------------------
aa
gda
ga

--方法2:
SQL> with tmp as
2 (
3 select 'gaga/gaga/aa' name from dual union all
4 select 'fa/gda' name from dual union all
5 select 'dfa/gads/ga/ga' name from dual
6 )
7 select substr(name, instr(name, '/', -1) + 1) name from tmp;

NAME
----------------------------
aa
gda
ga
人生无悔 2012-08-16
  • 打赏
  • 举报
回复

SQL> select replace(regexp_substr('gaga/gaga/aa','/[[:alpha:]]*$'),'/','') from dual;

RE
--
aa

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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