zoukankan      html  css  js  c++  java
  • Oracle instr 及 like

    原文: http://www.cnblogs.com/crazyjava/archive/2012/10/31/2748202.html

    instr(string1,string2[,start_position[,nth_appearence]])

    string1:要在此字符串中查找。

    string2:要在string1中查找的字符串。

    start_position:从string1开始查找的位置。可选,默认为1,正数时,从左到右检索,负数时,从右到左检索。

    nth_appearence:查找第几次出现string2。可选,默认为1,不能为负。

    注:如果没有查找到,返回0。

     例如:

    select instr('abcd','a') from dual;  --返回1
    select instr('abcd','c') from dual;  --返回3
    select instr('abcd','e') from dual;    --返回0

    该函数可以用于模糊查询以及判断包含关系:

    例如:

    ① select code, name, dept, occupation  from staff  where instr(code, '001') > 0;

      等同于

      select code, name, dept, occupation  from staff  where code like '%001%' ;

    ② select ccn,mas_loc from mas_loc where instr('FH,FHH,FHM',ccn)>0;

      等同于

      select ccn,mas_loc from mas_loc where ccn in ('FH','FHH','FHM');

    另一篇文章:

    表中将近有100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标。但经过实际测试发现,like的效率与instr函数差别相当大。

    SQL> set timing on
    SQL> select count(*) from t where instr(title,’oracle’)>0;

    COUNT(*)
    ———-
    5478

    Elapsed: 00:00:11.04
    SQL> select count(*) from t where title like ‘%oracle%’;

    COUNT(*)
    ———-
    5478

    Elapsed: 00:00:31.47

    注:

    instr(title,'oracle’)>0 相当于like

    instr(title,'oracle’)=0 相当于not like

    作者:robert
    出处:http://www.cnblogs.com/robertsun/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有错误,欢迎指出。以免更多的人被误导。
    欢迎留言交流。
  • 相关阅读:
    2019春第一次课程设计实验报告
    第十二周编程总结
    第五周课程总结&试验报告(三)
    第四周课程总结&实验报告(二)
    第三周课程总结&实验报告一
    第二周JAVA学习总结
    2019春总结作业
    对我影响最大的老师
    2019第一周编程总结
    2019春第十二周作业
  • 原文地址:https://www.cnblogs.com/robertsun/p/4106763.html
Copyright © 2011-2022 走看看