Oracle的substr函数简单用法 与substring区别

本文介绍了如何使用 substr 和 substring 方法来截取字符串中的特定部分。通过示例展示了从指定位置开始截取固定长度的字符串,包括从字符串尾部向前计数的情况。

substr(字符串,截取开始位置,截取长度) //返回截取的字

substr('Hello World',2,4) //返回结果为 'ello'

substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符


作用:从字符串索引(下标)为index1的字符开始截取长度为index2-index1 的字符串。

String str="Hello World";

System.out.println(str.substring(3,5));从第几位截取到第几位

打印结果为:lo


### OracleSUBSTR 函数详解 #### 功能描述 在 Oracle 数据库中,`SUBSTR()` 函数用于从给定的字符串中提取子串。此函数允许用户通过指定起始位置以及可选的长度参数来获取所需的部分字符串[^3]。 #### 语法结构 该函数的标准调用形式如下所示: ```sql SUBSTR(string, position[, length]) ``` - `string`: 被操作的目标字符串。 - `position`: 子串开始的位置;正数表示从左向右计数,负数则代表从右边开始计算。 - `length`(可选): 所需截取的字符数量,默认情况下会一直读取至原字符串结尾[^1]。 #### 特殊情况处理 当未提供第三个参数即子串长度时,系统默认返回从指定起点直到源字符串结束的所有剩余字符。而一旦设定了一个不大于零的长度值,则最终结果为空(null)[^4]。 #### 实际应用案例 下面是一些具体的 SQL 查询语句及其执行效果展示如何运用 `SUBSTR()` 来实现特定功能: ##### 示例一:简单抽取固定位数后的连续几个字符 假设有一个员工编号字段名为 emp_id 的表 employee ,现在想要取出每位雇员 ID 后面三位作为新列显示出来可以这样写查询: ```sql SELECT emp_id, SUBSTR(emp_id,-3) AS last_three_digits FROM employees; ``` 这里 `-3` 表明是从右侧倒数第四个字符处启动选取过程,并自动延伸到最后一位形成新的片段输出。 ##### 示例二:基于具体偏移量定位并限定范围内的文本片断采集 对于地址栏 address 内含有多项信息的情况(比如 "北京市朝阳区建国门外大街28号"),我们可能只关心其中某一部分的内容,例如城市名或街道名称等。此时可以通过调整第二个和第三个参数精准控制捕获区域: ```sql SELECT address, SUBSTR(address, INSTR(address,'市')+1 ,INSTR(address,'区')-(INSTR(address,'市'))-1 ) as city_name FROM addresses; ``` 上述命令利用了嵌套方式先找到关键词 “市” 和 “区”的确切索引再据此推算出中间间隔距离完成精确切割任务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值