Database/SQL

SQL 정규 표현식(Regular Expression) - 문자 데이터(숫자)

Iam_im2 2021. 10. 18. 19:37
728x90

1. 숫자 관련 패턴

패턴 기능 예시 설명
[0-9]
또는 [:digit:]
또는 \d
숫자와 일치한다. "^[0-9]" 정수인 숫자데이터만 찾는다.
{n} 선행 표현식이 정확하게 n번 발생 [0-9]{3} 0부터 9까지 자연수 중 하나가 3번 반복 '111', '031'
| 문자열을 구분해준다. 대한|사람 대한사람을 찾는다.
[ ] [ ]안에 있는 데이터 값을 찾는다. [0-3]82 “082”,“182”,“382” 값을 찾는다.

 

 

 

2. REGEXP_LIKE에의 적용예제

SELECT 반복횟수 FROM 테이블 WHERE REGEXP_LIKE(반복횟수 , '^[0-9]*$');

해석: 반복횟수열에서 0,1,2,3,4,5,6,7,8,9 의 정수 값인 데이터 출력

 

 

 

SELECT 반복횟수 FROM 테이블 WHERE NOT REGEXP_LIKE(반복횟수 , '^[0-9]*$');

해석: 반복횟수열에서 0,1,2,3,4,5,6,7,8,9 의 정수 값이 아닌 데이터 출력

 

 

 

SELECT grade FROM 테이블 WHERE NOT REGEXP_LIKE(grade, '^[12345]등급|등급제외$');

오늘 공공데이터 일경험 수련생 업무를 하면서 새롭게 사용한 패턴이다. 1등급, 2등급, 3등급, 4등급, 5등급 또는 등급제외가 아닌 데이터를 출력한다.

 

 

 

SELECT grade FROM 테이블 WHERE NOT REGEXP_LIKE(grade, '^[1-5]등급|등급제외$');

다르게 표현하면 이렇게 표현할 수도 있다.

 

 

 

3. 참고사이트

위키백과 정규표현식 문법

 

 

728x90