-- 문자열 split 하기...


-- INPUT

DECLARE @list_str VARCHAR(512) -- [key]:[value] 형식으로 콤마(,)로 구분. ex) '11:1,22:2'

SET @list_str = '11:1,22:2'


BEGIN

DECLARE @pos INT -- 문자 split용 position

DECLARE @is_continue BIT -- break while 용

DECLARE @one_pair VARCHAR(16) -- '[key]:[value]' 문자열

DECLARE @key INT -- 

DECLARE @value INT -- 

SET @is_continue = 1

WHILE @is_continue = 1

BEGIN

IF CHARINDEX(',', @list_str) > 0

BEGIN

SET @one_pair = SUBSTRING(@list_str, 1, CHARINDEX(',', @list_str)-1)

SET @pos = LEN(@one_pair) + 1

SET @list_str = LTRIM(RIGHT(@list_str, LEN(@list_str)- @pos))

END

ELSE

BEGIN

SET @one_pair = @list_str

SET @is_continue = 0

END

IF CHARINDEX(':', @one_pair) > 0

BEGIN

SET @key = SUBSTRING(@one_pair, 1, CHARINDEX(':', @one_pair)-1)

SET @pos = LEN(@key)+1

SET @value = LTRIM(RIGHT(@one_pair, LEN(@one_pair) - @pos))


select @key as 'key', @value as 'value'

END


END

END


'DB' 카테고리의 다른 글

ubuntu에 oracle xe 11g 설치하기  (0) 2013.08.21
고속 insert  (0) 2013.04.03
플랜 캐시 (실행계획 캐시)  (0) 2012.10.30
WITH(NOLOCK)  (0) 2012.09.12
암호화 예제  (0) 2012.04.15
백업/복구  (0) 2012.04.12
MSSQL SET 명령(옵션) 모음  (0) 2011.02.02
MSSQL  (0) 2011.01.29