oracle中instr函数与substr函数详细说明(附实例).docxVIP

oracle中instr函数与substr函数详细说明(附实例).docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oracle中instr函数与substr函数详细说明(附实例)

Oracle instr函数??INSTR   (源字符串, 目标字符串, 起始位置, 匹配序号)  在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始  到字符的结尾就结束。  语法如下:  instr( string1, string2 [, start_position [, nth_appearance ] ] )  参数分析:  string1  源字符串,要在此字符串中查找。  string2  要在string1中查找的字符串.  start_position  代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。  nth_appearance  代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。  注意:  如果String2在String1中没有找到,instr函数返回0.  示例:  SELECT instr(syranmo,s) FROM dual; -- 返回 1  SELECT instr(syranmo,ra) FROM dual;? -- 返回 3  1 SELECT instr(syran mo,a,1,2) FROM dual;? -- 返回 0  (根据条件,由于a只出现一次,第四个参数2,就是说第2次出现a的位置,显然第2次是没有再出现了,所以结果返回0。注意空格也算一个字符!)  SELECT instr(syranmo,an,-1,1) FROM dual;? -- 返回 4  (就算是由右到左数,索引的位置还是要看‘an’的左边第一个字母的位置,所以这里返回4)  SELECT instr(abc,d) FROM dual;? -- 返回 0  注:也可利用此函数来检查String1中是否包含String2,如果返回0表示不包含,否则表示包含。  对于上面说到的,我们可以这样运用instr函数。请看下面示例:  如果我有一份资料,上面都是一些员工的工号(字段:CODE),可是我现在要查询出他们的所有员工情况,例如名字,部门,职业等等,这里举例是两个员工,工号分别是’A10001′,’A10002′,其中假设staff是员工表,那正常的做法就如下:  1 2 SELECT? code , name , dept, occupation FROM staff? WHERE code IN (A10001,A10002);  或者:  SELECT? code , name , dept, occupation FROM staff? WHERE code = A10001 OR code = A10002;  有时候员工比较多,我们对于那个’觉得比较麻烦,于是就想,可以一次性导出来么?这时候你就可以用instr函数,如下:  SELECT? code , name , dept, occupation FROM staff? WHERE instr(A10001,A10002,code)0;  查询出来结果一样,这样前后只用到两次单引号,相对方便点。  还有一个用法,如下:  SELECT code, name, dept, occupation? FROM staff? WHERE instr(code, 001) 0;  等同于SELECT code, name, dept, occupation? FROM staff? WHERE code LIKE %001%数据库中Oracle中Substr函数用法1、substr(string string, int a, int b) 参数1:string 要处理的字符串参数2:a 截取字符串的开始位置(起始位置是0)参数3:b 截取的字符串的长度(而不是字符串的结束位置) 例如:substr(ABCDEFG, 0); //返回:ABCDEFG,截取所有字符substr(ABCDEFG, 2); //返回:CDEFG,截取从C开始之后所有字符substr(ABCDEFG, 0, 3); //返回:ABC,截取从A开始3个字符substr(ABCDEFG, 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。substr(ABCDEFG, 0, -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。2、substr(string string, int a) 参数1:str

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档