반응형
오라클에서 REGEXP_LIKE를 이용해서
테이블 컬럼 내의 숫자, 문자 데이터만 검색할 수 있는데
프로그램으로 INSERT를 하지 않고 직접 테이블에 INSERT를 해서
규칙에 어긋난 값들을 찾을 때 주로 사용된다
WHERE 절에서 REGEXP_LIKE(컬럼, '^[[:digit:]]+$')
를 사용하면 0부터 9까지
숫자만 들어있는 데이터를 뽑아올 수 있고
문자열 데이터만 뽑아오려면
NOT IN을 사용해서 숫자만 들어있는 컬럼을 제외하면
나머지는 모두 문자열이 되므로 문자열을 뽑아올 수 있다
마지막으로 예제에 사용한 쿼리는 아래와 같다
WITH TBL AS (
SELECT 'AAAAAA' AS COL1 FROM DUAL
UNION ALL SELECT 'AAA111' AS COL1 FROM DUAL
UNION ALL SELECT '111111' AS COL1 FROM DUAL
UNION ALL SELECT '한글한글' AS COL1 FROM DUAL
UNION ALL SELECT '한글111' AS COL1 FROM DUAL
)
-- 숫자만
SELECT *
FROM TBL
WHERE REGEXP_LIKE(COL1, '^[[:digit:]]+$')
;
-- 문자만
SELECT *
FROM TBL
WHERE COL1 NOT IN (
SELECT COL1
FROM TBL
WHERE REGEXP_LIKE(COL1, '^[[:digit:]]+$')
)
;
반응형
'SQL > Oracle' 카테고리의 다른 글
오라클 PL/SQL IF ELSE 문 사용방법 정리 (0) | 2020.12.16 |
---|---|
오라클 대소문자 구분 없이 조회 방법 (0) | 2020.12.15 |
오라클 날짜 더하는 방법 빼는 방법 정리 (1) | 2020.12.08 |
오라클 REPLACE 여러개 사용방법 (REGEXP_REPLACE) (0) | 2020.12.02 |
오라클 REPLACE 함수 사용방법 (0) | 2020.12.02 |
댓글