구분자로 구분된 문자열을 입력받아 테이블로 반환하는 함수입니다.
실행 예제 :
SELECT * FROM dbo.UDF_문자열테이블변환('1,2,3', ',')
코드 |
---|
1 |
2 |
3 |
CREATE FUNCTION dbo.UDF_문자열테이블변환
(
@문자열 VARCHAR(MAX),
@구분문자 VARCHAR(10)
)
RETURNS @vRETURN_TABLE TABLE ( 코드 VARCHAR(100) )
AS
BEGIN
DECLARE @v코드길이 INT,
@v현재위치 INT,
@v전체길이 INT,
@v구분문자길이 INT
SET @v현재위치 = 1
SET @v전체길이 = LEN(@문자열)
SET @v코드길이 = CASE WHEN CHARINDEX(@구분문자, @문자열, 1) = 0 THEN LEN(@문자열) ELSE CHARINDEX(@구분문자,@문자열, 1) - 1 END
SET @v구분문자길이 = LEN(@구분문자)
WHILE @v현재위치 <= @v전체길이
BEGIN
INSERT INTO @vRETURN_TABLE (코드)
SELECT SUBSTRING(@문자열, @v현재위치, @v코드길이)
SET @v현재위치 = @v현재위치 + @v코드길이 + @v구분문자길이
SET @v코드길이 = CASE WHEN CHARINDEX(@구분문자, @문자열, @v현재위치) = 0 THEN LEN(@문자열) ELSE CHARINDEX(@구분문자, @문자열, @v현재위치) - @v현재위치 END
END
RETURN
END
GO
이 사이트는 광고를 포함하고 있습니다.
광고로 발생한 수익금은 서버 유지 관리에 사용되고 있습니다.This site contains advertisements.
Revenue generated by the ad servers are being used for maintenance.