/*
사용예 :
SELECT * from dbo.[fnStrComma](',,a,a,a,b,cd,e', ',')
SELECT * from dbo.[fnStrComma]('특정 문자로 구분된 문자열 값을 테이블로 변환하여 반환한다', ' ')
*/
CREATE FUNCTION [dbo].[fnStrComma]
(
@src VARCHAR(MAX)
, @delimeter CHAR(1)
)
RETURNS
@TABLE TABLE
(
seq INT IDENTITY(1,1)
, item VARCHAR(MAX)
)
AS
BEGIN
DECLARE @pos1 INT
, @pos2 INT
, @item VARCHAR(MAX)
IF @delimeter IS NULL
SET @delimeter = ','
IF @src <> ''
BEGIN
SET @pos1 = 1
SET @pos2 = CHARINDEX(@delimeter, @src, @pos1)
WHILE @pos2 > 0
BEGIN
SET @item = SUBSTRING(@src, @pos1, @pos2 - @pos1)
INSERT INTO @TABLE ( item ) VALUES ( @item )
SET @pos1 = @pos2 + 1
SET @pos2 = CHARINDEX(@delimeter, @src, @pos1)
END -- End While
-- 마지막 항목 추가
SET @item = SUBSTRING(@src, @pos1, LEN(@src) - @pos1 + 1)
INSERT INTO @TABLE ( item ) VALUES ( @item )
END
RETURN
END
'IT > DB' 카테고리의 다른 글
FullText Indexing 사용하기 샘플 (0) | 2023.02.13 |
---|---|
MSSQL 백업 - UNC 를 이용한 네트워크 스토리지 (0) | 2023.02.13 |
[mssql] DB 메일 발송 (0) | 2023.02.10 |
[오라클] 힌트정리 (0) | 2023.02.10 |
[mssql] 로그 파일 축소 방법 (0) | 2023.02.10 |