2010. 9. 1. 13:41

(oracle)LIKE연산자에서 '%'와 '_'를 포함하는 단어 검색 방법

LIKE연산으로 '%'나 '_'가 들어간 문자를 검색하기 위해서는 ESCAPE를 사용해야 합니다.
'_'나 '%'앞에
ESCAPE로 특수 문자를 지정하면 검색할 수 있습니다.


1. '_' 가 있는 문자 검색

 SQL>SELECT   loc
         FROM   dept
         WHERE   loc like '%#_%' ESCAPE '#';
        
LOC
-------------
NEW_YORK      
  
 
위 문장에서 #대신 다른 문자가 와도 됩니다.
(아래같이 @같은 특수 문자나, A같은 아파벳이나, 9같은 숫자가 와도 똑같은 결과가 나오네요)

아래의 결과들을 한번 비교해 보시기 바랍니다.

SQL> SELECT   loc
         FROM   dept
         WHERE   loc like '%N%@_%' ESCAPE '@'
        
LOC
-------------
NEW_YORK   
     
 

 
SQL>SELECT loc
        FROM dept
        WHERE loc like '%_%';
        
LOC
-----------
NEW_YORK
DALLAS
CHICAGO
BOSTON




2, '%' 가 있는 문자 검색

'%'가 있는 문자도 '_'가 있는 문자 검색과 동일 합니다.

SQL>SELECT loc
        FROM dept
        WHERE loc like '%@%%' ESCAPE '@';
 
LOC
-------------
BOS%TON

 
 
SQL>SELECT loc
       FROM dept
       WHERE loc like '%%%';

LOC
-------------
NEW_YORK
DALLAS
CHICAGO
BOS%TON