[MSSQL] split 함수를 만들어보자(return table) 본문
/*
* 해당 문자열을 해당 구분문자로 분리하여 테이블형식으로 반환한다.
*/
CREATE FUNCTION fn_split
(
@StrValue VARCHAR(1000), -- 문자열
@SplitChar VARCHAR(1) -- 구분 문자
)
RETURNS @SPLIT_TEMP TABLE ( VALUE VARCHAR(50) )
AS
BEGIN
DECLARE @oPos INT, @nPos INT
DECLARE @TmpVar VARCHAR(1000) -- 분리된 문자열 임시 저장변수
SET @oPos = 1 -- 구분문자 검색을 시작할 위치
SET @nPos = 1 -- 구분문자 위치
WHILE (@nPos > 0)
BEGIN
SET @nPos = CHARINDEX(@SplitChar, @StrValue, @oPos )
IF @nPos = 0
SET @TmpVar = RIGHT(@StrValue, LEN(@StrValue)-@oPos+1 )
ELSE
SET @TmpVar = SUBSTRING(@StrValue, @oPos, @nPos-@oPos)
IF LEN(@TmpVar)>0
INSERT INTO @SPLIT_TEMP VALUES( @TmpVar )
SET @oPos = @nPos +1
END
RETURN
END
[사용방법]
SLEECT VALUE FROM fn_split('a|b|c|d','|')
value |
a |
b |
c |
d |
'디비 > MSSQL' 카테고리의 다른 글
[MSSQL] 대소문자 변환하기 (0) | 2019.01.25 |
---|---|
[MSSQL] TRIM 함수 사용하기 (0) | 2019.01.23 |
[MSSQL] MERGE 를 사용하여 입력/수정 처리 (0) | 2019.01.16 |
[MSSQL] GROUP_CONCAT(MYSQL)기능 사용하기 (0) | 2018.12.21 |