실행 예제 :
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
프로젝트마다 필요한 함수였던 것으로 기억된다.
다음 프로젝트에는 머리쓸 필요없이 복사해서 사용하면 될듯!
TRACKBACK URL : http://bbon.kr/blog/trackback/816




