oracle 用SQl语句截取最后一个“\”后面的内容

例如:file表中字段名filename的数据有:C:\DocumentsandSettings\sytl\桌面\各部门反馈\条线分册-财务部.xlsC:\Documen... 例如:file表中字段名filename的数据有:
C:\Documents and Settings\sytl\桌面\各部门反馈\条线分册-财务部.xls
C:\Documents and Settings\dell\tabledest\上报信息.doc...........
现在我要把filename内的数据全部替换为去掉路径只显示文件名,也就是说只留下
条线分册-财务部.xls
上报信息.doc
如果用sql实现不了的话可以用函数或存储过程,不过这个我不太熟请解释详细些啊,谢谢了
展开
 我来答
sxm1220
推荐于2017-11-25 · 超过13用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:40.1万
展开全部
select substr('C:\Documents and Settings\sytl\桌面\各部门反馈\条线分册-财务部.xls',instr('C:\Documents and Settings\sytl\桌面\各部门反馈\条线分册-财务部.xls','\',-1,1)+1) from dual

这个绝对可以!
追问
太棒了 这个确实可以,但是整个表的替换怎么弄啊
select substr((select filename from file),instr((select filename from file),'\',-1,1)+1) from dual
这样不行啊,求助!!
追答
你要把表里面的数据都改成那样吗?如果是的话用
update 表名 set 字段名=substr(字段名,instr(字段名,'\',-1,1)+1) where 条件(条件为确定你要更新的那条记录)
这样就好了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刹那de痛楚
2012-04-30 · TA获得超过1702个赞
知道小有建树答主
回答量:1412
采纳率:0%
帮助的人:963万
展开全部
TRIM(字符 FROM 字符串) 去掉字符串首尾的字符;
示例: select trim('S' from ename) from emp;
select trim('C:\Documents and Settings\sytl\桌面\各部门反馈\' from filename) from file where filename like 'C:\Documents and Settings\sytl\桌面\各部门反馈\%';
select trim('C:\Documents and Settings\dell\tabledest\' from filename) from file where filename like 'C:\Documents and Settings\dell\tabledest\%';
我已经尽力了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bfb9204
2012-04-30 · TA获得超过718个赞
知道小有建树答主
回答量:1008
采纳率:66%
帮助的人:431万
展开全部
我用的是sql2000
不知道oracle 通用不,你自己测试下
select reverse(left(reverse(filename),charindex('\',reverse(filename))-1)) from file
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7ce7f851d
2012-04-30 · 超过14用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:48.1万
展开全部
substr
Length
Instr
三个函数组合可以实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式