DATABASE(oracleDB 11g)/SQL

[SQL]정규식 함수의 기초

SEUNGSAMI 2019. 2. 14. 16:28

정규식 함수의 기초



내가 가지고 있는 수만개의 데이터중 한개의 PHONENUMBER 컬럼에 대해, 알파벳이 섞여있는 ROW를 출력하려고 한다.

만약 이것을 단순히 생각했을 경우,


1
2
3
4
5
6
7
SELECT *
FROM TABLE
WHERE PHONE_NUMBER LIKE '%A%'
   OR PHONE_NUMBER LIKE '%B%'
   OR ...
   ...
   OR PHONE_NUMBER LIKE '%Z%';
cs

이러한 방법으로 쓰는 경우가 있다.


하지만 정규식을 쓴다면

1
2
3
SELECT *
FROM TABLE
WHERE REGEXP_LIKE(PHONE_NUMBER,'[[:alpha:]]');
cs

위와 같이 간단한 방법으로 확인을 할 수가 있다.



다음은 정규식을 이용한 예시이다.

1
2
3
SELECT *
FROM EMP
WHERE REGEXP_LIKE(ENAME, '^(S|A)');
cs



다음은 특정 문자의 갯수를 찾는 정규식 함수의 예시이다.

1
2
SELECT SUM(REGEXP_COUNT(TEXT,'America'))
FROM KEYNOTE;
cs


#########내용보충필요#########


SQL을 배운지 얼마 되지 않아 잘못된 내용이 있을 수 있습니다. 틀린 내용이있다면, 댓글로 달아주세요.



'DATABASE(oracleDB 11g) > SQL' 카테고리의 다른 글

[SQL]분석 함수 활용  (0) 2019.02.15
[SQL]동의어 기초  (0) 2019.02.14
[SQL]INDEX의 기초  (0) 2019.02.14
[SQL]SEQUENCE(시퀀스)의 기초  (0) 2019.02.14
[SQL]EXISTS 의 보충  (0) 2019.02.11