トップページに戻る    次の豆知識へ    前の豆知識へ

豆知識06 Like演算子のメタキャラのエスケープ


Like演算子のメタキャラをエスケープする方法
[Oracle] LIKE 検索では全角の'%'、'_'も特殊文字として扱われる?

半角の%と_の他に、全角の%や_にも対応する必要があります。


select Col1,Col2, case when Col1 Like replace(replace(replace(Col2,'\','\\'),'%','\%'),'_','\_') escape '\' then 1 else 0 end as "半角のみ対応", case when Col1 Like replace(replace( replace(replace(replace(Col2,'\','\\'),'%','\%'),'_','\_'), '_','\_'),'%','\%') escape '\' then 1 else 0 end as "半角と全角に対応", case when Col1 Like regexp_replace(Col2,'([\%_])','\\\1') || '%' escape '\' then 1 else 0 end as "正規表現版" from (select 'a' as Col1,'%' as Col2 from dual union select '\','%' from dual union select '%','%' from dual union select '_','_' from dual union select 'a','_' from dual);