thanks to;
http://blog.naver.com/hukim79?Redirect=Log&logNo=60140217656
ALTER FUNCTION [dbo].[UF_TEXT_SPLIT_STRING]
(
-- Add the parameters for the function here
@TEXT VARCHAR(1000)
,@DELIMITER CHAR(1)
,@postion INT
) RETURNS VARCHAR(100)
AS
BEGIN
-- Declare the return variable here
DECLARE @INDEX INT
DECLARE @STRINGS VARCHAR(100)
DECLARE @RET_STRINGS VARCHAR(100)
DECLARE @cnt INT
-- Add the T-SQL statements to compute the return value here
SET @INDEX = -1
SET @cnt = 1
WHILE (LEN(@text) > 0)
BEGIN
SET @INDEX = CHARINDEX(@DELIMITER , @TEXT)
IF (@INDEX = 0) AND (LEN(@TEXT) > 0)
BEGIN
set @STRINGS = @TEXT
IF @cnt = @postion
BEGIN
SET @RET_STRINGS = @STRINGS
BREAK
END
BREAK
END
IF (@INDEX > 1)
BEGIN
set @STRINGS = LEFT(@TEXT, @INDEX - 1)
IF @cnt = @postion
BEGIN
SET @RET_STRINGS = @STRINGS
BREAK
END
SET @TEXT = RIGHT(@TEXT, (LEN(@TEXT) - @INDEX))
END
ELSE
SET @TEXT = RIGHT(@TEXT, (LEN(@TEXT) - @INDEX))
SET @cnt = @cnt + 1
END
-- Return the result of the function
RETURN (@RET_STRINGS)
END
사용법 :
select db명.소유자명.UF_TEXT_SPLIT_STRING('1,2,3,4', ',', 3) as tt
-변수 1 : 문자열
-변수 2 : split 문자
-변수 3 : 가져올 항목 (배열, 1부터 시작)




덧글