상세 컨텐츠

본문 제목

split

DataBase/SQL Server

by 탑~! 2024. 12. 6. 09:57

본문


/****** Object:  UserDefinedFunction [itmon].[fnSplit]    Script Date: 2024-12-06 오전 9:56:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************          
0. 버전        : SQL Server 2022
1. 스토어드명  : fnSplit
2. 목적& 기능  : 특정문자를 기준으로  데이타를 테이블로 리턴한다.
3. 사용예
DECLARE @G_STR VARCHAR(100) = '11111@222222@333333'
SELECT * FROM itmon.fnSplit(@G_STR, '@')
**********************************************************************/   
ALTER FUNCTION [itmon].[fnSplit]
(
    @StrValue VARCHAR(MAX), -- 대상 문자열
    @SplitChar CHAR(1) -- 구분자

RETURNS @SPLIT_TEMP TABLE  ( RtnValue VARCHAR(MAX) )
AS 
BEGIN   
    DECLARE @sPos INT, @nPos INT
    DECLARE @TmpVar VARCHAR(MAX) -- 분리된 문자열 임시 저장변수 
 
    SET @sPos = 1 -- 구분문자 검색을 시작할 위치
    SET @nPos = 1 -- 구분문자 위치

    WHILE (@nPos > 0)
    BEGIN 
        SET @nPos = CHARINDEX(@SplitChar, @StrValue, @sPos ) 

        IF @nPos = 0 
            SET @TmpVar = RIGHT(@StrValue, LEN(@StrValue)-@sPos+1 )
        ELSE
            SET @TmpVar = SUBSTRING(@StrValue, @sPos, @nPos-@sPos)

        IF LEN(@TmpVar)>0
            INSERT INTO @SPLIT_TEMP VALUES( @TmpVar )

        SET @sPos = @nPos + 1 
    END 

RETURN 
END

'DataBase > SQL Server' 카테고리의 다른 글

PROCEDURE  (0) 2024.12.11
테이블 용량 조회  (0) 2024.12.06
데이타 한글 포함여부  (0) 2023.03.17
SQL Express 비밀번호 변경  (0) 2021.06.14
SQL Server 어셈블리 등록  (0) 2021.06.14

관련글 더보기