MS-SQL의 STUFF 함수는 문자열 처리에서 매우 유용하게 사용됩니다. 그러므로 SQL을 배우는 학생부터 실무자 까지 잘 숙지해야 하는 함수에요.
🔍 STUFF 함수란?
STUFF 함수는 SQL Server에서 문자열의 일부를 삭제하고, 그 자리에 새 문자열을 삽입 하는 함수입니다.
쉽게 말해, 문자열 편집 기능을 제공하는 강력한 함수입니다.
1. STUFF 함수 기본문법
STUFF(문자열, 시작위치, 삭제할 문자 수, 삽입할 문자열)
- 문자열: 원본 문자열
- 시작위치: 삭제가 시작될 위치 (1부터 시작)
- 삭제할 문자 수: 몇 개의 문자를 삭제할지
- 삽입할 문자열: 삽입할 새 문자열
2. STUFF 함수 사용예제
✅ 예제 1 – 문자열 일부 치환
SELECT STUFF('HelloWorld', 6, 5, 'SQL');
🔹 결과: HelloSQL
- 'HelloWorld'에서 6번째부터 5글자를 삭제하고, 그 자리에 'SQL'을 삽입
- 'World' → 'SQL'로 대체된 결과입니다.
✅ 예제 2 – 문자열 삽입
SELECT STUFF('20250610', 5, 0, '-')
📌 결과: 2025-0610
- 5번째 자리에 아무 것도 삭제하지 않고 '-' 삽입
- 날짜 포맷을 보기 좋게 만들 때 유용합니다.
✅ 예제 3 – 여러 열 연결 후 구분자 넣기 (FOR XML PATH와 함께 사용)
SELECT
STUFF((
SELECT ',' + name
FROM Employees
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
📌 결과: 홍길동,이몽룡,성춘향
- 쉼표로 구분된 문자열 리스트 만들기
- 맨 앞에 생기는 쉼표를 STUFF로 제거
3. STUFF 함수 주의사항
- start 인덱스는 1부터 시작합니다. 0이나 음수는 오류 발생
- length가 0이면 삭제 없이 단순 삽입
- 널(NULL) 값이 포함되면 결과는 NULL이 됩니다
4. STUFF 함수 활용 팁
- 날짜 포맷 변환
예: '20250610' → '2025-06-10' - 구분자 제거 및 추가
예: 쉼표, 하이픈, 콜론 등 삽입 - 문자열 리스트 만들기
FOR XML PATH와 함께 사용 시 매우 강력!
✍️ 마무리
STUFF 함수는 간단하지만 다양한 곳에서 유용하게 쓰이는 SQL 함수입니다. 문자열을 자르고 붙이는 작업이 필요하다면 꼭 기억해두세요!
🧠 관련 함수 함께 보기
- REPLACE() : 문자열 전역 치환
- SUBSTRING() : 문자열 일부 추출
- LEFT(), RIGHT() : 왼쪽/오른쪽 문자열 추출
💬 읽어주셔서 감사합니다.
공감 + 댓글 은 큰 힘이 됩니다.
여러분의 응원은 컨텐츠 제작에 큰 힘이 됩니다! 😊
👀 같이 보면 좋은 글
2025.06.09 - [MS-SQL] - [MS-SQL] REPLACE 함수 완벽 가이드: 문자열 바꾸기 실전 예제와 꿀팁
[MS-SQL] REPLACE 함수 완벽 가이드: 문자열 바꾸기 실전 예제와 꿀팁
🔍 요약: MS-SQL의 문자열 치환 함수 REPLACE에 대해 예제를 중심으로 쉽게 설명합니다. SQL에서 특정 문자열을 다른 문자열로 바꾸고 싶다면 이 포스팅을 확인해보세요. 쿼리 작성시에 문자열 내에
kjh11225it.tistory.com
2025.06.05 - [MS-SQL] - [MS-SQL] SUBSTRING, LEFT, RIGHT 함수 완전정복 – 문자열 추출 실무 예제 정리
[MS-SQL] SUBSTRING, LEFT, RIGHT 함수 완전정복 – 문자열 추출 실무 예제 정리
🔍 요약: SQL에서 문자열을 추출하고 싶다면 SUBSTRING, LEFT, RIGHT 함수를 활용하세요. 주민번호, 전화번호 포맷 등 실무에 딱 맞는 예제를 정리했습니다. 쿼리 작성할때 문자열의 일부분을 잘라서
kjh11225it.tistory.com
'MS-SQL' 카테고리의 다른 글
[MS-SQL] REPLACE 함수 완벽 가이드: 문자열 바꾸기 실전 예제와 꿀팁 (0) | 2025.06.10 |
---|---|
[MS-SQL] SUBSTRING, LEFT, RIGHT 함수 완전정복 – 문자열 추출 실무 예제 정리 (0) | 2025.06.09 |
MS-SQL에서는 LPAD 없다고요? 직접 구현하는 방법까지 알려드립니다 (0) | 2025.06.08 |
[MS-SQL] DATEADD 함수 사용법 – 날짜 더하고 빼는 실무 활용 예제 (0) | 2025.06.07 |
[MS-SQL] DATEDIFF 함수로 날짜 차이 계산하기 – 실무 예제로 쉽게 배우기 (0) | 2025.06.06 |