INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1被搜索的字符串 C2希望搜索的字符串 I搜索的开始位置,默认为1 J出现的位置,默认为1 SQL>selectinstr(oracletraning,ra,1,2)instringfromdual; INSTRING --------- 9
他的位置搜索是从1开始的也就是说o的位置是1,这点要分清楚。
INSTR方法的格式为 INSTR(源字符串,要查找的字符串,从第几个字符开始,要找到第几个匹配的序号) 返回找到的位置,如果找不到则返回0. 例如:INSTR('CORPORATE FLOOR','OR',3,2)中,源字符串为'CORPORATE FLOOR',在字符串中查找'OR',从第三个字符位置开始查找"OR",取第三个字后第2个匹配项的位置。
默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。
所以SELECT INSTR('CORPORATE FLOOR',-1,1) "aaa" FROM DUAL的显示结果是
Instring —————— 14
oracle的substr函数的用法: 取得字符串中指定起始位置和长度的字符串 substr( string,start_position,[ length ] ) 如: substr('This is a test',6,2) would return 'is' substr('This is a test',6) would return 'is a test' substr('TechOnTheNet',-3,3) would return 'Net' substr('TechOnTheNet',-6,3) would return 'The' select substr('Thisisatest',-4,2) value from dual
这个最巧妙的我感觉还是用在有几个固定值的order by中
eg:order by instr("1,2,8,9",mark,1)是不是感觉很方便。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|