Oracle에서 like 질의를 사용할 때 밑줄을 처리하는 방법

예: 질의 ZJ_STANDARD_ITEM 테이블의name1 필드에는 "_("데이터가 포함되어 있습니다.

-- 
select * from ZJ_STANDARD_ITEM t where t.name1 like '%_(%';

원인 분석


밑줄 "_"oracle에서는 단순히 밑줄을 긋는 뜻이 아니라 단일한 문자와 일치한다는 뜻입니다!위 쿼리 문장은 "("왼쪽에 문자가 있으면 쿼리됨) 을 나타냅니다.

[해결 방법]


escape () 함수 사용하기
escape 키워드는 와일드카드:'%','_'와 같은 특수 문자를 만드는 데 자주 사용됩니다.전의 문자는 원래 문자의 의미로 정의된 전의 문자는 통상적으로''를 사용하지만 다른 기호도 사용할 수 있다.
예를 들어 위의 조건문은 where t.name1 like'%_(%'escape';, 이 "\"는 다른 문자로 변경할 수 있습니다

-- escape "_" 
select t.name1 from ZJ_STANDARD_ITEM t where t.name1 like '%\_(%'escape '\';
지식 포인트 확장: Oracle에서 LIKE 모호 조회 사용
Like 모호 질의
자리 표시자
% 하나 이상의 문자 대체
_ 한 문자만 재지정
[charlist] 문자 열의 모든 단일 문자
[^charlist] 또는 [!charlist] 문자 열에 없는 단일 문자
(1) 사용자 이름이'S'로 시작하는 직원 정보 조회

  Select * from emp where ename like 'S%'
(2) 사용자 이름이'S'로 끝나는 직원 정보 조회

 Select * from emp where ename like '%S'
(3) 사용자 이름 조회 두 번째 알파벳은'A'의 직원 정보

  select * from emp where ename like '_A%'
(4) 사용자 이름 조회 세 번째 알파벳은'A'의 직원 정보

  select * from emp where ename like '__A%'
(5) 사용자 이름에'A'가 포함된 직원 정보 조회

  select * from emp where ename like '%A%'
(6) 조회 사용자 이름에'A'가 없는 직원 정보

  select * from emp where ename not like '%A%'
(7) "Persons"테이블에서 거주 도시를 "A"또는 "L"또는 "N"으로 시작하는 사람을 선택합니다.

 SELECT * FROM Persons WHERE City LIKE '[ALN]%'
(8) "Persons"테이블에서 거주 도시가 "A"또는 "L"또는 "N"으로 시작하지 않는 사람을 선택합니다.

SELECT * FROM Persons WHERE City LIKE '[!ALN]%'
이 글은 Oracle이 like 조회를 사용할 때 밑줄을 처리하는 것에 관한 것입니다. 더 많은 Oracle like 조회 밑줄 처리 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 조회해 주십시오. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기