oracle 怎么从后开始截取字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 怎么从后开始截取字符相关的知识,希望对你有一定的参考价值。
如: abcdef 截取后4位
变成 ab
怎么用sql 实现?
因为 后 有可能是 abcd.txt 的名字 所以要截取后面的 4位 只留名字
1、在oracle中经常需要使用到截取字符串函数substr。语法:substr(str,num1,[num2]); 默认情况下都是只需要两个参数,它的意思是从第二个字符开始截取str字符串剩下所有的字符。
2、substr函数中第二个参数也可以是负数,它的使用是从str倒数第num1个字符的位置开始截取。
3、也可以同时使用三个数,它的使用是从num1开始截取str字符,截取num2个字符。如下图,
4、在同时使用三个参数的时候,第二个参数也可以是负数,它的使用就是从str倒数num1的位置的开始截取num2个字符。如下图,
5、不过有一点需要注意的是从num位置开始截取str时,如果num2的参数比较大那么返回的结果也只是返回str从num位置开始最多的字符。完成。
参考技术A Rtrim(abcdef,cdef)Rtrim()的功能就是将字符串abcdef右边的cdef去掉,同理,Ltrim(str,par)的功能就是将字符串str右边的par去掉追问
原有文件 是 abcd.TXT 前面的abcd不一定是多少位的 可是后面的.TXT 是确定的 我想把.TXT去掉
追答那可以啊,前提是你 的abcd.TXT是字符串,假设有一个文件abcd....xyz.TXT用函数Rtrim(abcd....xyz.TXT,.TXT)将.TXT去掉
参考技术B substr( string, start_position, [ length ] )参数分析:
string
字符串值
start_position
截取字符串的初始位置, Number型,start_position为负数时,表示从字符串右边数起。
length
截取位数,Number型
其中,length为可选,如果length为空(即不填)则返回start_position后面的所有字符。
意思就是:
从start_position开始,取出length个字符并返回取出的字符串。
具体参考示例。
示例:
SELECT substr('This is a test', 6, 2) FROM dual 返回 'is'
substr('SyranMo have a dream', -8, 2) 参考技术C Select substr('abcdef',1,2) From dual
这个结果就ab
不懂你想要什么结果追问
有可能是 ABCDEF.TXT ,前面的名字不一定多少位 我要把 .TXT截掉
追答用replace替换.txt吧
Select Replace('ABCDEF.TXT','.TXT') From dual
不行呀 我就怕 文件时 ABCDEF.txt 后面的扩展名是 小写的
小写的话 Select Replace('ABCDEF.txt','.TXT') From dual 这个就查不到了
这样吧
Select substr('ABCDEF.TXT',1,length('ABCDEF.TXT')-4) From dual
java 怎么从后向前截取字符串
参考技术A 用StringBuilder类里面的方法,substring截取,reverse翻转 参考技术B Java代码String str = "440103000000";
System.out.print(str.replaceAll("0*$", ""));本回答被提问者采纳
以上是关于oracle 怎么从后开始截取字符的主要内容,如果未能解决你的问题,请参考以下文章
oracle截取某一字符串中的全部数字作为另外一个查询语句中in的查询条件,怎么做