오라클 LIKE IN 다중 조건 검색
SOME_TABLE이라는 테이블의 TEXTS라는 컬럼에 S와 T로 시작하는 조건의 ROW를 출력하고 싶은데 어떻게 해야할까
오라클에서 아래 쿼리 같이 LIKE IN이 먹히지 않는다.
예시쿼리 (사용 불가능)
SELECT *
FROM SOME_TABLE
WHERE TEXTS LIKE IN ('S%', 'T%')
해결 방법
정규식 (REGEXP_LIKE)로 검색
오라클 10g 버전 이상부터 사용 가능함.
원형 : REGEXP_LIKE(STRING, PATTERN)
| (파이프)문자로 구분자를 지어준다.
SELECT *
FROM SOME_TABLE
WHERE REGEXP_LIKE(TEXTS, 'S|T')
정규식을 사용한다.
SELECT *
FROM SOME_TABLE
WHERE REGEXP_LIKE(TEXTS, '^[ST]')
중간부터 다른 글자 검색은 어떻게 할까
SELECT *
FROM SOME_TABLE
WHERE REGEXP_LIKE(TEXTS, '^KKK[QW]')
우리가 알고있는 정규식을 사용하면 된다.
위 쿼리 검색결과는 TEXTS 라는 컬럼의 KKKQ.. 로 시작하거나 KKKW..로 시작하는 ROW를 가져온다.
WHERE REGEXP_LIKE(name, '홍|김|서')
WHERE (name LIKE '%홍%' OR name LIKE '%김%' OR name LIKE '%서%')
'IT > SQL' 카테고리의 다른 글
[토드] Toad로 엑셀 데이타를 테이블에 import 하여 저장하기 (0) | 2019.05.27 |
---|---|
Sybase 와 Oracle 차이 (0) | 2019.05.27 |
SAS BASE 덤프파일 공유합니다. (0) | 2018.10.19 |
sql 날짜 중복되지않게 변경하기! (0) | 2018.08.29 |
oracle 중복날짜 제거 및 중복기간 나눠주는 쿼리 (0) | 2018.08.28 |
[오라클] ORA-22992: 원격 테이블로 부터 선택된 LOB 위치를 사용할 수 없습니다. (0) | 2017.07.22 |
2016 SAS-QA사례집( SAS-KOREA) (0) | 2017.05.24 |