Mir's 운영환경
본체 DeskTop
O S Windows7 Ultimate K (Service Pack 1)
APP Microsoft SQL Server Management Studio  2012
MS-SQL Micorsoft SQL Server 2008 R2 (10.50.1765.0)

String Array To Table Function


MS-SQL에서 String Array을 Table로 변환시키는 함수(Split 기능)를 만들어보자.


MS-SQL에서 프로시저를 만들다보면 가끔 String Array( ','로 구분되는 String 같은)를

테이블로 변환하면 편하게 진행할수 있을경우가 있다.

(보통 WHILE을 돌릴때 혹은 재정렬이 필요할경우)

그럴경우 아래 Function을 미리 정의해놓고 사용하면 편리하게 이용이 가능하다.

    CREATE FUNCTION fnStringToTable (@String Nvarchar(4000), @separator nvarchar(10))
    RETURNS @re TABLE
        (col nvarchar(100))
    AS
    BEGIN

    DECLARE @col Nvarchar(100)
    DECLARE @len smallint
    DECLARE @cur smallint
    DECLARE @next smallint

    SET @len = Len(@String)
    SET @cur = 1

    WHILE (@len > 0)
    BEGIN
    SET @next = 0
    SELECT @next = CHARINDEX(@separator, @String, @cur)
    IF @next = 0
    BEGIN
        SELECT @col = SUBSTRING(@String, @cur, (@len - @cur + 1))
        IF RTRIM(LTRIM(@col)) <> ''
            INSERT @re VALUES(RTRIM(LTRIM(@col))) 
        BREAK
    END
    ELSE
    BEGIN
        SELECT @col = SUBSTRING(@String, @cur, (@next - @cur))
        SET @cur = @next + 1
    END
        IF RTRIM(LTRIM(@col)) <> ''
            INSERT @re VALUES(RTRIM(LTRIM(@col)))
    END
    RETURN
    END  
    



보고 있는 글과 같이 보면 좋은 글들..


+ Recent posts