码迷,mamicode.com
首页 > 数据库 > 详细

oracle判断一个字符串中是否包含另外一个字符串

时间:2015-06-01 11:07:02      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

select * from a where instr(a,b)>0;

用于实现B字段是A字段中的某一部分的时候,要论顺序或者要相邻的字符。

如果想要不论顺序或者不相邻的字符时,定义函数可以实现:

select * from a where instr(a,b)>0;

这个只能实现B字段是A字段中的某一部分的时候。 如果想要不论顺序或者不相邻的字符时,定义函数可以实现

 

create or replace function checks(v_a varchar2,v_b varchar)
  return number
  as
     num number;
     cou number;
  begin
     num := -1;
     cou:=0;
     for i in 1..length(v_b) loop
        if instr(v_a,substr(v_b,i,1))>0 then
     cou:=cou+1;
        end if;
     end loop;
     if cou=length(v_b) then
     return cou;
     end if;
     dbms_output.put_line(cou||    ||length(v_b));
  return num;
  end;
 
结果:
 SQL> select * from a;
 
A          B
 ---------- ----------
 asdf       sd
 asdf       ad
 asdf       df
 asdf       asdf
 
SQL> select * from a where checks(a,b)>0;
 
A          B
 ---------- ----------
 asdf       sd
 asdf       ad
 asdf       df
 asdf       asdf
 

 

oracle判断一个字符串中是否包含另外一个字符串

标签:

原文地址:http://www.cnblogs.com/tian830937/p/4543234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!