상세 컨텐츠

본문 제목

[mssql] 문자열을 치환하기 - replace, stuff 예제

SQL

by 자기 2022. 1. 27. 14:11

본문

728x90

일주일이 빨리 가는군요.

오늘 내일만 넘기면 설날 연휴입니다.

다들 화잉팅하시고요.

오늘은 mssql에서 문자열을 치환하는 두가지 방법을 알아보겠습니다.

문자열 string을 치환하는 방법으로는 replace 함수와 stuff 함수가 있는데

실무에서는 replace를 더 많이 사용하는 것 같습니다.

 

 

 

 

 

 

 

 

REPLACE

mssql 문자열에서 특정문자나 문자열을 다른 문자나 문자열로 치환해 줄 수 있습니다.

replace라는 용어 자체가 교체한다, 치환한다는 뜻이지요.

예제 4가지를 통해 자세히 알아보겠습니다.

 

-- 용법
-- REPLACE('문자열','치환예정문자','치환할문자')
-- 예제
select REPLACE('ABCDEFG','BCD','KKK');
select REPLACE('ABCDEFG','BCD','K');
select REPLACE('ABCDEFG','XYZ','KKK');
select REPLACE('ABCDABC','AB','KK');
​

1. ABCDEFG에서 BCD를 KKK로 바꾸어서 AKKKEFG가 되었습니다.

2. ABCDEFG에서 BCD를 K로 바꾸어서 AKEFG가 되었습니다.

3. ABCDEFG에서 XYZ를 KKK로 바꾸어서 ABCDEFG가 되었습니다.

ZYX 문자열은 존재하지 않기 때문에 아무것도 바뀐 것이 없습니다.

4. ABCDABC에서 AB를 KK로 바꾸어서 KKCDKKC가 되었습니다.

참고) mysql에서도 사용법이 동일합니다.

 

 

 

STUFF

mssql 치환함수 stuff는 문자열의 특정 위치부터 특정 크기만큼을 특정문자로 치환해 주는 기능을 합니다.

stuff의 사용법을 세가지 예제를 통해 알아보겠습니다.

-- 용법
-- STUFF('문자열','시작위치','크기','치환할문자')
-- 예제--
select STUFF('ABCDEFG',2,3,'KKK');
select STUFF('ABCDEFG',2,30,'KKK');
select STUFF('ABCDEFG',10,3,'KKK');

1. ABCDEFG에서 2번째 위치부터 3개의 문자를 KKK로 바꾸어서 AKKKEFG가 되었습니다.

2. ABCDEFG에서 2번째 위치부터 30개의 문자를 KKK로 바꾸어서 AKKK가 되었습니다.

대상 문자열은 7개인데 그보다 많은 30개를 바꾸려 했지만 최대한 바꿀 수 있는 길이만큼만 바꾸어졌습니다.

3. ABCDEFG에서 10번째 위치부터 3개의 문자를 KKK로 바꾸어서 NULL이 되었습니다.

대상 문자열은 7개인데 시작위치를 그보다 큰 10번째로 주는 경우에는 위와 같이 NULL을 출력합니다.

이상으로 문자열을 치환하는 두가지 방법을 몇가지 유형으로 예제를 통해 알아보았습니다.

즐거운 코딩~ 하시길 바라옵고~

오늘도 행복하세요!

728x90

관련글 더보기

댓글 영역