「Oracle」likeとescape文で検索文字列をエスケープするサンプル

環境
Oracle Database 11g Release 11.2.0.1.0 – 64bit Production
PL/SQL Release 11.2.0.1.0 – Production

構文
select * from テーブル名
where 列名 like '(エスケープ文字%or_)値(エスケープ文字%or_)’ escape 'エスケープ文字’
like文の後にescapeを使用すると指定した文字の後はエスケープされます。
検索したい文字列に%や_が存在する場合に使用します。

使用例
1.USER_INFOテーブルの確認

USERID	USERNAME	AGE
11	to01	       23
12	user02	       24
13	tokyo	       25
14	user05	       35
15	osaka06	       40

2.テーブルの列名「username」に対して条件文字「_」にlikeとescapeを指定します。
SQL構文

select * from user_info
where username like '%\_%' ESCAPE '\';

実行結果

USERID	USERNAME	AGE
15	 osa_ka06	40

3.テーブルの列名「username」に対して条件文字「%」にlikeとescapeを指定します。
SQL構文

select * from user_info
where username like '\%%' ESCAPE '\';

実行結果

USERID	USERNAME	AGE
13	   %tokyo	    25

 

Oracle

Posted by arkgame