일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Lock
- 파리바게트 청라 SK점
- 티스토리
- 박근혜 탄핵
- 신장사거리
- 하남맛집
- MSsql
- 카카오가 찾아준 헤어샵
- Google Map
- 최신트래커
- 국정화 반대
- 하남
- 트레커
- 함수
- jquery
- 맛집
- C#
- 파리바게트
- 국정화
- 카카오헤어샵
- 트래커
- 초대장
- 내장함수
- 동적쿼리
- 술안주
- 재테크
- .net
- 토렌트
- javascript
- db
- Today
- Total
featur
[mssql] STUFF (Transact-SQL) 함수 본문
STUFF(Transact-SQL)
STUFF 함수는 다른 문자열에 문자열을 삽입합니다.
이 함수는 지정된 시작 위치와 문자 수에 따라 첫 번째 문자열의 문자를 삭제하고 두 번째 문자열을 시작 위치에 삽입합니다.
구문
STUFF ( character_expression , start , length ,character_expression )
인수
character_expression
문자 데이터의 식입니다. character_expression은 문자나 이진 데이터의 열, 상수 또는 변수일 수 있습니다.
start
삭제 및 삽입 시작 위치를 지정하는 정수 값입니다. start 또는 length가 음수이면 Null 문자열이 반환됩니다. start가 첫 번째character_expression보다 길면 Null 문자열이 반환됩니다. start는 bigint 형식일 수 있습니다.
length
삭제할 문자 수를 지정하는 정수입니다. length가 첫 번째 character_expression보다 길면 마지막 character_expression의 마지막 문자까지 삭제됩니다. length는 bigint 형식일 수 있습니다.
반환 형식
character_expression이 지원되는 문자 데이터 형식 중 하나이면 문자 데이터를 반환합니다. expression이 지원되는 이진 데이터 형식 중 하나이면 이진 데이터를 반환합니다.
주의
시작 위치 또는 길이가 음수이거나 시작 위치가 첫 번째 문자열의 길이를 넘어서면 null 문자열이 반환됩니다.
삭제할 길이가 첫 번째 문자열보다 길면 첫 번째 문자열의 첫 번째 문자까지 삭제됩니다.
결과 값이 반환 유형이 지원하는 최대값보다 크면 오류가 발생합니다.
예
다음 예에서는 첫 문자열 abcdef에서 2 위치의 b부터 세 문자를 삭제하고 삭제 지점에 두 번째 문자열을 삽입하여 만든 문자열을 반환합니다.
SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO
결과 집합은 다음과 같습니다.
---------------------------------------------------------------------------------------------------------------
활용
---------------------------------------------------------------------------------------------------------------
SELECT MS.SiteInfo, MT.*
FROM MCS_TRAINING MT
LEFT OUTER JOIN
(SELECT DISTINCT TRN_ID,
STUFF((
SELECT ',' + SITE_ID
FROM dbo.MCS_TRAINING_SITE B WHERE B.TRN_ID = A.TRN_ID
FOR XML PATH('')
), 1, 1, '') AS SiteInfo
FROM dbo.MCS_TRAINING_SITE A) MS
ON MT.TRN_ID = MS.TRN_ID
WHERE MT.TRN_ID = 5
---------------------------------------------------------------------------------------------------------------
TRN_ID SiteInfo
--------------------------------------------------------------------------------------------------------------- 5 C5A0_T1111,C5A0_T1112
19 Z108911
24 0006171450,0006194246
25 0002124488,0002124870,0006171450,0006194246,22462,C5A0_4024,C5A0_4047,C5A0_4048,C5A0_6536,C5A0_6543
26 0002124488,0002124871,0002124873,0002125980,0002126516,0002126857,0002127402,0003262688,0006084378,0006171450,0006194246,0006224753,0006276442,22923,C5A0_6133,C5A0_T1001,C5A0_T1002,C5A0_T4454,Z108907,Z108911
27 0002124488,0002124871,0002124873,0002125980,0002126516,0002126857,0002127402,0003262688,0006084378,0006171450,0006194246,0006224753,0006276442,22923,C5A0_6133,C5A0_T1001,C5A0_T1002,C5A0_T4454,Z108907,Z108911
28 0006084378,0006171450,0006194246,0006224753,0006276442,Z108907,Z108911
(7개 행 적용됨)
'개발 > MSSQL' 카테고리의 다른 글
[mssql] 클러스터드 / 넌 클러스터드 인덱스 (0) | 2015.11.04 |
---|---|
[mssql] DB 내 INDEX 확인 (0) | 2015.11.04 |
[mssql] 테이블 별 데이터 건 수 및 사이즈 확인 (0) | 2015.11.03 |
[mssql] 에러 메세지 : 데이터 정렬 충돌을 해결할 수 없습니다. (0) | 2015.11.03 |
[mssql] 잠금에 관한 고찰(1) - 잠금(Lock) 매커니즘에 대하여 (0) | 2015.11.03 |