17、oracle:oracle模糊查询,截取字符串以及搜索字符等函数

来源:互联网 发布:在端口23连接失败 编辑:程序博客网 时间:2024/05/29 17:08

本文来自:http://blog.csdn.net/heyiwuwu/article/details/59530007

模糊匹配

    匹配语句:where coloumnvalue(列值) like 字符串 
匹配常用方法: 
      1,字符串中有%表示另外还有零个及以上个字符 
         如:’%大剧院%’,表示查询该列值中含有’大剧院’的行; 
         如:’%大%美’,表示查询该列值中含有’大’且以’美’结尾的行; 
       2,字符串中有_表示任意单个字符串 
          如:’_娟’,表示查询列值中只有两个字符且以’娟’结尾的行 
       3,字符串中有[]表示匹配括号内任意一个字符串 
          如,’[美中苏英]国’,表示查询列值为美国,中国,苏国,英国中任意一个行; 
          如,’%[美中苏英]国’表示查询列值含有美国,中国,苏国,英国等中任意一个字段的行; 
       4,字符串中含有[^]表示不匹配括号内中的任意一个字符, 
         如,’[^赵钱孙]娟’,表示查询列值不为’赵娟,钱娟,孙娟’中任意一个的行; 
        如果要查询%,_,^,[]等特殊字符,需要利用括号[]将特殊字符括起来即可。

截取字符串函数

     substr(string,position[,length]): 
     string表示要检索的字符串; 
     position表示从字符串什么位置开始截取,正数表示从左边开始数,负数表示从右边开始数; 
     length截取长度,负数或者零则返回null; 
     substr(“abcdef”,1,3)=’abc’;//从左边第一位开始往右截取3个字符 
     substr(“abcdef”,-1,3)=’f’;//从右边第一位开始往右截取3个字符 
     substr(‘abcdef’,-4,3)=’cde’;

搜索字符函数

     instr(string,substring[,position][,occurence]); 
     string表示源字符串; 
     substring表示要搜索的字符串; 
     postion表示源字符串什么位置开始搜索,可选,默认为1; 
     occurence表示匹配字符第几次出现,可选,默认为1; 
     返回值为出现的位置,例如: 
     instr(‘abcdabcd’,’ab’)=1,表示abcdabcd中第一次出现ab的位置是1; 
     instr(‘abc/dab/cd’,’/’,1,2)=8,表示’abc/dab/cd’中从第一位开始第二次出现’/’的位置是8 
     instr(‘abc/dab/cd’,’/’,5,2)=0,表示’abc/dab/cd’中从第5位开始第二次出现’/’的位置是0