티스토리 뷰
숫자 혹은 문자로만 된 데이터를 찾아야 하는 일이 생겨 기록해봄
REGEXP_LIKE와 REGEXP_REPLACE 함수를 써서 정규식을 활용한 판별을 진행
(REGEXP는 다양한 종류와 옵션이 있지만 다루지 않음)
1. 정규식
- [0-9] 숫자, [^0-9] 숫자 외의 것
- 그 외의 다양한 정규표현식이 있으니 구글링 ㄱ
2. WHERE절에 쓰는 REGEXP_LIKE을 이용하여 데이터 조회하기
- LIKE문 처럼 해당 정규식에 해당하는 데이터가 한자라도 포함되어 있으면 조회한다.
- NOT을 사용하여 숫자를 포함한 것들을 제외하면 숫자가 하나도 포함되지 않은 데이터를 조회한다.
- 반대로 NOT을 사용하여 숫자가 아닌 것을 포함한 모든 것을 제외하여 숫자로만 이루어진 데이터를 조회한다.
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]를 넣으면 반대로 데이터 속 숫자만 보여준다.
SELECT REGEXP_REPLACE(컬럼, '[0-9]') //문자만 추출
SELECT REGEXP_REPLACE(컬럼, '[^0-9]') //숫자만 추출
4. 끝
- 숫자+문자로 된 데이터가 들어있는 컬럼을 '컬럼', 테이블을 '테이블'로 표기
SELECT 컬럼 FROM 테이블 WHERE REGEXP_LIKE(컬럼, '[^0-9]') //숫자 외의 것이 포함된 것
SELECT 컬럼 FROM 테이블 WHERE NOT REGEXP_LIKE(컬럼, '[^0-9]') //숫자외의 것이 포함된 것이 아닌 것 → Only 숫자
SELECT 컬럼 FROM 테이블 WHERE REGEXP_LIKE(컬럼, '[0-9]') //숫자가 포함된 것
SELECT 컬럼 FROM 테이블 WHERE NOT REGEXP_LIKE(컬럼, '[0-9]') //숫자가 포함된 것이 아닌 것 → Only 문자
SELECT REGEXP_REPLACE(컬럼, '[0-9]') FROM 테이블 //문자만 추출
SELECT REGEXP_REPLACE(컬럼, '[^0-9]') FROM 테이블 //숫자만 추출
'DB(Oracle)' 카테고리의 다른 글
[DB/Oracle] Date 연산, 날짜 연산 (0) | 2020.02.07 |
---|---|
[DB/ORACLE] SEQUENCE 시퀀스 값 수정 (0) | 2020.02.06 |
[DB/Oracle] UNION, UNION ALL 속도 차이, 결과 합치기 (0) | 2020.01.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- onfocus
- replaceAll
- 한글우선
- input블록지정
- replace
- db
- 영어우선
- tomcat 오류
- 날짜표기법
- javascript
- Oracle
- this.select
- 동기식
- 비동기식
- 공백제거
- 데이터 받기
- imemode
- Union All
- java
- project clean
- tomcat port 충돌
- 속도차이
- regexp
- 라인이동
- 문자숫자판별
- 오라클디비
- async
- 날짜계산연산
- 컴파일 에러
- 한글영어기본값설정
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함