728x90
REGEXP_LIKE(컬럼, ‘패턴1|패턴2|패턴3’, [매칭파라미터])
NOT REGEXP_LIKE(컬럼, ‘패턴1|패턴2|패턴3’, [매칭파라미터])
- 오라클 10g 버전부터 추가된 기능으로 유닉스(리눅스) 정규식과 파이프(|)문자를 사용하여 다양한 패턴의 다중 검색 가능
✅ 정규식
정규식 | 의미 | 예시 | 설명 |
^ | 문자열의 시작 | ^K | 대문자 K로 시작하는 문자열 |
$ | 문자열의 끝 | H$ | 대문자 H로 끝나는 문자열 |
. | 임의의 문자 | ^.k | 두번째 문자가 소문자 k인 문자열 |
[^문자열] | 해당 문자열 제외 | [^A-Z]$ | 대문자로 끝나는 문자열 제외 |
[A-Z] | A~Z 까지의 알파벳 대문자 중 하나에 매칭 | ||
[a-zA-Z] | 알파벳 대소문자 전체 중 하나에 매칭 | ||
[0-9] | 0~9 까지의 숫자 중 하나에 매칭 |
✅ 예시
--직업명에 end 또는 Full 문자열을 포함하는 직원들 조회
SELECT *
FROM employees
WHERE yyyy = ‘2022’
AND REGEXP_LIKE(job, ‘end|Full’)
;
--직업명이 Android 또는 ios로 시작하는 직원들은 제외하고 조회
SELECT *
FROM employees
WHERE yyyy = ‘2022’
AND NOT REGEXP_LIKE(job, ‘^Android|^ios’)
;
--직업명이 Designer 또는 Developer로 끝나는 직원들 조회
SELECT *
FROM employees
WHERE yyyy = ‘2022’
AND REGEXP_LIKE(job, ‘Designer$|Developer$’)
;
--90년대 1월 또는 80년대 1월에 출생한 직원들 조회
SELECT *
FROM employees
WHERE yyyy = ‘2022’
AND REGEXP_LIKE(birth_date, ‘^9.01|^8.01’)
;
✅응용
SELECT *
FROM user_source
WHERE REGEXP_LIKE(text, (SELECT LISTAGG(table_name, ‘|’) WITHIN GROUP(ORDER BY table_name) AS table_name
FROM user_tables
WHERE table_name LIKE ‘%GNPS%’))
728x90
'RDBMS > Oracle' 카테고리의 다른 글
[Oracle] 로컬 PC ORACLE_HOME 경로&tnsnames.ora 파일 경로 확인 (0) | 2023.04.21 |
---|---|
[Oracle] 오라클 데이터 딕셔너리 뷰 (0) | 2023.03.15 |
[Oracle] 오라클 LEAD, LAG 함수(이전 행, 다음 행 값) (0) | 2023.03.07 |
[Oracle] Windows11에 오라클 19c 설치하기 (0) | 2022.10.27 |
[Oracle] 샘플 데이터베이스 / Oracle Database Documentation /SQL Language Reference (0) | 2022.08.21 |