DB/Oracle
ORACLE 데이터 문자,숫자(판별식)
현박이
2024. 3. 22. 14:04
반응형
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]') --숫자만 추출
반응형