oracle利用substr和instr函数截取角色序列的第一个角色
来源:互联网 发布:excel编程入门教程 编辑:程序博客网 时间:2024/05/24 15:39
假设角色表里parts有一个字段partlist,它的记录为:
partlist
147,225
136
147,225,224
148
131,149
129
223
132
224,147,225
14
1963
19,822,002
1964
现在想要的结果是截取角色字段里的第一个角色值,即如果有多个角色取第一个,有一个就去那个,如下所示:
partlist
147
136
147
148
131
129
223
132
224
14
1963
19
1964
那我们需要写的sql语句是:
select substr(','||a.partlist||',',2,(instr(','||a.partlist||',',',',1,2)-2)) as partlist
from parts
里面用到两个函数substr和instr。
下面说明这两个函数的用法:
(1)INSTR的用法
INSTR方法的格式为
INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)
例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置。
默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。
所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的显示结果是
Instring
——————
14
(2)substr的用法
In oracle/PLSQL, the substr functions allows you to extract a substring from a string.
The syntax for the substr function is:
substr( string, start_position, [ length ] )
说明:
string is the source string.
start_position is the position for extraction. The first position in the string is always 1.
length is optional. It is the number of characters to extract. If this parameter is omitted, substr will return the entire string.
For example:
substr('This is a test', 6, 2) would return 'is'
substr('This is a test', 6) would return 'is a test'
substr('TechOnTheNet', 1, 4) would return 'Tech'
substr('TechOnTheNet', -3, 3) would return 'Net'
substr('TechOnTheNet', -6, 3) would return 'The' 。
在本例中,首先是用','||a.partlist||','给parlist字段的每条记录的前面和后面都加上一个“,”号,然后利用instr函数instr(','||a.partlist||',',',',1,2)从第一数开始查找获取记录中第二个","出现的位置。
因为刚才在parlist前面和后面都加上了",",所以我们只要把刚才返回的值再减去2就可以得到角色列表中第一个角色的长度(instr(','||a.partlist||',',',',1,2)-2)。
接着利用substr函数就可以很容易的截取角色列表中的角色了。
substr(','||a.partlist||',',2,(instr(','||a.partlist||',',',',1,2)-2))
','||a.partlist||',':给parlist字段的每条记录的前面和后面都加上一个“,”号。
从第2个位置开始截取,截取的长度是角色列表中第一个角色的长度。
- oracle利用substr和instr函数截取角色序列的第一个角色
- Oracle的instr函数和substr函数
- oracle的常用函数 instr() 和substr()函数
- oracle的常用函数 instr() 和substr()函数
- oracle的常用函数 instr() 和substr()函数
- oracle的常用函数 instr() 和substr()函数
- oracle的常用函数 instr() 和 substr()函数
- oracle的常用函数 instr() 和substr()函数
- oracle的常用函数 instr() 和substr()函数(转)
- oracle中instr函数和substr函数的浅用法
- Oracle中substr函数和instr函数的结合使用
- oracle的substr和instr函数的用法
- Oracle的SUBSTR()和INSTR()以及REGEXP_SUBSTR()函数的用法
- oracle中的instr和substr函数
- Oracle中的instr和substr函数用法
- oracle 的几个函数instr(),substr(),nvl()
- instr和substr函数
- Oracle 通过Substr和Instr实现制定字符的字符串的截取
- VS 2005 (.Net 2.0) 提供的Login1的使用方法
- 数码相机短片合并及压缩工具(数码短片伴侣)
- Asp.net中DataBinder.Eval用法的总结
- ccna 1 Chapter 3
- SEO优化策略
- oracle利用substr和instr函数截取角色序列的第一个角色
- 如何构造一个简单的USB过滤驱动程序
- CMD文件的编写
- ccna 1 Chapter 4
- set html as readonly
- J2EE系统的概念及如何开发
- 创建窗口代码分析一
- 驱动学习笔记–irp
- Python的reduce