<質問内容>
SQL文で文字列の比較をしたい。
比較条件として 文字列 A と 文字列 B の どこか2文字が一致すれば
真として、レコードが返るようにしたい。
どのような条件指定を行えばよいか。
・Windows2000 / R8.1.7
・文字列長 不定 (最大100文字程度)
・合致箇所 不定 (先頭2文字 や 末尾 2文字 ではなく、どこか2文字としたい)
<回答内容>
The function created by the following script can help you do what you want.
The return value 1 means TRUE and 0 means FALSE.
Please note that this function is case-sensitive.
--------------------------------------------------------------------------------
create or replace function compare(sA in varchar2, sB in varchar2)
return varchar2
is result varchar2(200);
begin
if (length(sA)>=2) then
for n in 1..length(sA) loop
select to_char(count(*)) into result from dual where sB like '%'||substr(sA,n,2)||'%';
if result='1' then
result:=sA;
return(result);
end if;
end loop;
end if;
result:='Not match';
return(result);
end;
/
--------------------------------------------------------------------------------
For example:
SQL> select compare('abcdefghijklmnopqrstuvwxyz','11111111111111de111111111111')
2 as flag from dual;
FLAG
----------
1
SQL> select compare('abcdefghijklmnopqrstuvwxyz','12345678901234567890')
2 as flag from dual;
FLAG
----------
0
Thursday, November 23, 2006
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment