728x90
함수 사용 : replace(칼럼명, '찾을 문자', '변환 문자') ('변환 문자' 입력하지 않을 시 빈칸으로 반환)
- 특정문자 치환
replace(이름, 'Steven', 'S.')
- 특정문자 제거
replace(이름, 'King', '') or replace(이름, 'King')
- 엔터값 제거
replace(replace(이름, chr(13),''), chr(10), '')
- 탭문자 제거
replace(이름, chr(9), '')
-<br/>태그 엔터값으로 전환
replace(이름,'<br/>',chr(13)||chr(10))
-전화번호 구분자 제거
replace(전화번호,'-','')
특정 문자 치환
WITH TEMP AS (
SELECT 'Steven King' 이름 FROM DUAL
)
SELECT A.이름
, REPLACE(A.이름, 'Steven', 'S.') RE_NM
FROM TEMP A
- 문자 치환시 대문자, 소문자를 구분하기 때문에 유의해야 한다.
특정 문자 제거
WITH TEMP AS (
SELECT 'Steven King' 이름 FROM DUAL
)
SELECT A.이름
, REPLACE(A.이름 ,'King', '') RE_NM
FROM TEMP A
엔터값 제거
WITH TEMP AS (
SELECT 'Steven' || CHR(13)||CHR(10) || 'King' 이름 FROM DUAL
)
SELECT A.이름
, REPLACE(REPLACE(A.이름, CHR(13), ''), CHR(10), '') RE_NM
FROM TEMP A
- 엔터값을 제거하기 위해서는 replace 함수를 두 번 사용해야 정확하게 제거된다.
- 윈도우에서 엔터값은 chr(13) chr(10) 이며 리눅스에서 엔터값은 chr(10)으로 사용된다
탭문자 제거
WITH TEMP AS (
SELECT 'Steven' || CHR(9) || 'King' 이름 FROM DUAL
)
SELECT A.이름
, REPLACE(A.이름, CHR(9), '') RE_NM
FROM TEMP A
- 오라클에서 탭문자는 chr(9)을 사용한다.
<br/> 태그 엔터값으로 치환
WITH TEMP AS (
SELECT 'Steven' || '<br/>' || 'King' 이름 FROM DUAL
)
SELECT A.이름
, REPLACE(A.이름, '<br/>', CHR(13)||CHR(10)) RE_NM
FROM TEMP A
-<br/> 태그 치환시 대문자, 소문자를 구분하기 때문에 유의해야 한다
-<br>, <BR/> 등 경우의 수가 많다면 여러번 치환하는게 좋다
전화번호 구분자 제거
WITH TEMP AS (
SELECT '010-9999-9999' TELNO FROM DUAL
)
SELECT A.TELNO
, REPLACE(A.TELNO, '-', '') RE_TELNO
FROM TEMP A
728x90
'Be Smart > SQL' 카테고리의 다른 글
[Oracle] NVL, NVL2 함수 (0) | 2021.11.26 |
---|---|
[Oracle] 오라클 SUBSTR 문자열 자르기 사용법 (0) | 2021.11.17 |
[오라클] SELECT 개수 제한 (0) | 2021.11.08 |
[Oracle] Like 구문의 업그레이드 버전 , regexp_like (0) | 2021.11.08 |
[SQLD] (3) SQL기본 (0) | 2021.10.26 |
댓글