DB/Oracle
[Oracle] 숫자, 문자 데이터만 추출하기
꾹꾹이
2022. 5. 2. 15:50
728x90
숫자, 문자로만 된 데이터를 찾을 때 사용하는 방법이다.
나는 REGEXP_LIKE 함수를 사용할 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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 테이블이름 //숫자만 추출
/*문자만 추출*/
SELECT *
FROM TB_1
WHERE COL1 NOT IN (
SELECT COL1
FROM TB_1
WHERE REGEXP_LIKE(COL1, '^[[:digit:]]+$')
)
;
|
cs |
WHERE 절에서 REGEXP_LIKE(컬럼, '^[[:digit:]]+$')를 사용하면
0부터 9까지 숫자만 들어있는 데이터를 뽑아올 수 있고
문자열 데이터만 뽑아오려면 NOT IN을 사용해서
숫자만 들어있는 컬럼을 제외하면 나머지는 모두 문자열이 되므로 문자열을 뽑아올 수 있다.