CREATE FUNCTION [dbo].[CommaSplit]
(
@InputString VARCHAR(MAX)
)
RETURNS
@OutputTable TABLE
(
-- Add the column definitions for the TABLE variable here
Val VARCHAR(MAX)
)
AS
BEGIN
-- Fill the table variable with the rows for your result set
DECLARE @Val VARCHAR(MAX),@Pos INT,@Len INT
SET @Len = LEN(@InputString)
SET @Pos=0
WHILE (CHARINDEX(',',@InputString,@Pos)-@Pos) > 0
BEGIN
SET @Val = SUBSTRING(@InputString,@Pos,(CHARINDEX(',',@InputString,@Pos)-@Pos))
INSERT INTO @OutputTable(Val)
SELECT @Val
SET @Pos = CHARINDEX(',',@InputString,@Pos)+1
END
IF @Pos <= @Len
BEGIN
SET @Val = SUBSTRING(@InputString,@Pos,(@Len+1)-@Pos)
INSERT INTO @OutputTable(Val)
SELECT @Val
END
RETURN
END
SELECT * FROM dbo.CommaSplit('1, Value1, Value2, 2')
--DROP FUNCTION CommaSplit
No comments:
Post a Comment