Sometimes it is needed to Split string on the basis of delimiter
passed, in such case below function can be used,
-- Select *
from [fn_SplitString] ('1,1;25,2;',';')
-- Split string by deimiter passed,
here deimiter is ‘;’. =============================================================================
CREATE FUNCTION [dbo].[fn_SplitString]
(
@string NVARCHAR(MAX),
@delimiter CHAR(1)
)
RETURNS @output TABLE(SplitData NVARCHAR(MAX)
)
BEGIN
DECLARE
@start INT,
@end INT
SELECT
@start = 1,
@end = CHARINDEX(@delimiter, @string)
WHILE
@start < LEN(@string) + 1 BEGIN
IF @end
= 0
SET
@end = LEN(@string) + 1
INSERT INTO @output (SplitData)
VALUES(SUBSTRING(@string, @start, @end - @start))
SET
@start = @end +
1
SET
@end = CHARINDEX(@delimiter, @string, @start)
END
RETURN
END
OutPut
SplitData
1,1
25,2
Comments
Post a Comment