CREATE FUNCTION dbo.Fn_Split
(
@INPUT VARCHAR(MAX) ,
@SEPARATOR NVARCHAR(5)
)
RETURNS @ReturnTabValue TABLE
(
Value NVARCHAR(MAX)
)
AS
BEGIN
WHILE ( CHARINDEX(@SEPARATOR, @INPUT) > 0 )
BEGIN
INSERT INTO @ReturnTabValue( Value)
SELECT Value = LTRIM(RTRIM(SUBSTRING(@INPUT, 1,CHARINDEX(@SEPARATOR,@INPUT) - 1)));
SET @INPUT = SUBSTRING(@INPUT,CHARINDEX(@SEPARATOR, @INPUT)+ LEN(@SEPARATOR), LEN(@INPUT));
END
INSERT INTO @ReturnTabValue( Value )
SELECT Value = LTRIM(RTRIM(@INPUT));
DELETE FROM @ReturnTabValue WHERE ISNULL(Value, '') = ''
RETURN
END
GO
Output : -
SELECT * FROM dbo.Fn_Split('1,2,3,4,5,6',',')
(
@INPUT VARCHAR(MAX) ,
@SEPARATOR NVARCHAR(5)
)
RETURNS @ReturnTabValue TABLE
(
Value NVARCHAR(MAX)
)
AS
BEGIN
WHILE ( CHARINDEX(@SEPARATOR, @INPUT) > 0 )
BEGIN
INSERT INTO @ReturnTabValue( Value)
SELECT Value = LTRIM(RTRIM(SUBSTRING(@INPUT, 1,CHARINDEX(@SEPARATOR,@INPUT) - 1)));
SET @INPUT = SUBSTRING(@INPUT,CHARINDEX(@SEPARATOR, @INPUT)+ LEN(@SEPARATOR), LEN(@INPUT));
END
INSERT INTO @ReturnTabValue( Value )
SELECT Value = LTRIM(RTRIM(@INPUT));
DELETE FROM @ReturnTabValue WHERE ISNULL(Value, '') = ''
RETURN
END
GO
Output : -
SELECT * FROM dbo.Fn_Split('1,2,3,4,5,6',',')
No comments:
Post a Comment