반응형
split를 테이블로 반환해 준다.
CREATE FUNCTION dbo.spSplit ( @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
반응형