2010. 9. 1. 13:41
(oracle)LIKE연산자에서 '%'와 '_'를 포함하는 단어 검색 방법
2010. 9. 1. 13:41 in Oracle
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
'_'나 '%'앞에 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