프로그래밍/DB

[DB] MSSQL 특정문자열 업데이트(REPLACE,STUFF)

ss-pro 2024. 1. 15. 23:59
반응형

테이블 내용중에 특정부분의 데이터값을 다른문자열로 변경하고 싶을 경우에는 REPLACE, STUFF를 사용하여 변경이 가능합니다. 

1. Replace문을 사용하기 
AdventureWorks데이터베이스의 Customer테이블의 EmailAddress의 .com도메인은 .co.kr로 변경해보겠습니다. 데이터를 변경할때는 Update문을 바로 하기보다는 Select문으로 결과값을 미리 확인 후 업데이트 하는게 좋습니다.  

REPLACE문을 이용해서 .com문자열값을 .co.kr로 변경하는 쿼리입니다. 

1
2
UPDATE [AdventureWorksLT2022].[SalesLT].[Customer] SET 
EmailAddress = REPLACE(EmailAddress,'.com','.co.kr')

업데이트문을 실행 후 데이터를 다시 확인해보면 결과값이 변경된 부분을 확인 할 수 있습니다. 


2. STUFF 사용하기 
STUFF를 사용하여 아래와 같이 특정위치에 있는 문자열을 대체할 수 있습니다. STUFF(phone,7,2,'XX')의 결과값을 보면 7번째 자리에서 두문자의 값 34가 XX로 대체합니다. STUFF(phone,7,2,'abcd')의 결과는 34대신 abcd값으로 대체됩니다. 


1
UPDATE Users set phone = STUFF(phone,7,2,'XX')

데이터를 변경하기 위해서는 위와 같이 업데이트 구문에 STUFF를 사용하면됩니다.REPLACE문을 많이 사용하나 STUFF도 종종 쓸모가 있기때문에 알아두면 좋습니다.