첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170

▶ 문자열에서 테이블 생성하기 예제

SELECT A.*
FROM   dbo.CreateTable('1,2,3,4,5', ',') AS A;

 

▶ 문자열에서 테이블 생성하기

CREATE FUNCTION dbo.CreateTableFromString
(
    @P_String    NVARCHAR(MAX) -- 문자열
   ,@P_Separator NVARCHAR(10)  -- 분리자
)
RETURNS @Result TABLE(Item NVARCHAR(100))
AS
BEGIN
    DECLARE @Temp   NVARCHAR(MAX);
    DECLARE @Start  INT;
    DECLARE @End    INT;
    DECLARE @Length INT;
    DECLARE @Index  INT;

    SET @Temp  = ' ' + @P_String;
    SET @Start = 1;
    SET @End   = 0;
    SET @Index = 0;

    WHILE(@Start <> 0)
    BEGIN
        SET @End = CHARINDEX(@P_Separator, @Temp, @Start);

        IF @End <> 0
        BEGIN
            SET @Length = @End - @Start;
        END
        ELSE
        BEGIN
            SET @Length = LEN(@Temp) - @Start + 1;
        END;

        INSERT INTO @Result(Item) VALUES (RTRIM(LTRIM(SUBSTRING(@Temp, @Start, @Length))));

        SET @Start = @End + 1;

        IF @End = 0
        BEGIN
            RETURN;
        END;
    END;

    RETURN;
END
728x90
반응형
그리드형
Posted by 사용자 icodebroker

댓글을 달아 주세요