본문 바로가기

DB/Oracle

ORACLE 데이터 문자,숫자(판별식)

반응형

REGEXP_LIKE와 REGEXP_REPLACE 함수를 써서 정규식을 활용한 판별을 진행

1.정규식

[0-9] 숫자, [^0-9] 숫자 외의 것

[가-힣] 한글, [^가-힣] 한글 외의 것

[A-Z] 영어대문자, [^A-Z] 영어대문자 외의 것 (소문자도있음)

2.WHERE 절에서 REGEXP_LIKE 사용

기본 LIKE 문처럼 정규식에 포함된 문자 하나라도 있으면 조회된다.

NOT을 사용하면 해당 문자가 포함되지않은 데이터가 조회된다

^정규식에 NOT을 사용하여 해당 문자가 아닌 모든것을 제외하므로써 해당 문자만 포함되어있는 데이터만 조회된다

EX)

WHERE REGEXP_LIKE(컬럼, '[0-9]') --데이터에 숫자가 하나라도 포함되면 조회 

WHERE REGEXP_LIKE(컬럼, '[^0-9]') --데이터에 숫자가 아닌 것이 하나라도 포함되면 조회 

WHERE NOT REGEXP_LIKE(컬럼, '[0-9]') --데이터에 숫자가 하나라도 포함되면 제외: 숫자 없는 데이터

​WHERE NOT REGEXP_LIKE(컬럼, '[^0-9]') --데이터에 숫자가 아닌 것이 하나라도 포함되면 제외: 숫자

 

3. SELECT 절에서 REGEXP_REPLACE 사용

해당 정규식에 해당하는 데이터를 제외하고 데이터를 조회한다.

[0-9]를 넣으면 데이터에서 숫자를 지우고 보여준다.

[^0-9]를 넣으면 반대로 데이터 속 숫자만 보여준다.

EX)

SELECT REGEXP_REPLACE(컬럼, '[0-9]') --문자만 추출 

SELECT REGEXP_REPLACE(컬럼, '[^0-9]') --숫자만 추출

'DB > Oracle' 카테고리의 다른 글

테이블 LOCK  (1) 2024.04.16
오라클 인덱스관리  (0) 2024.03.22
오라클 현재 실행중인 쿼리확인  (0) 2024.03.22
오라클 삭제한 데이터 복구  (0) 2024.03.22
오라클 업데이트(update) 서브쿼리문  (0) 2024.03.22