StringToTable
ALTER FUNCTION [dbo].[udf_StringToTable]
(
@list NVARCHAR(MAX) ,
@delimiter NCHAR(1) = ',' --Defaults to CSV
)
RETURNS
@tableList TABLE ( value nvarchar(MAX) )
AS
BEGIN
DECLARE @value NVARCHAR(MAX)
DECLARE @position INT
SET @list = LTRIM(RTRIM(@list))+ ','
SET @position = CHARINDEX(@delimiter, @list, 1)
IF REPLACE(@list, @delimiter, '') <> ''
BEGIN
WHILE @position > 0
BEGIN
SET @value = LTRIM(RTRIM(LEFT(@list, @position - 1)))
IF @value <> ''
BEGIN
INSERT INTO @tableList (value)
VALUES (@value)
END
SET @list = RIGHT(@list, LEN(@list) - @position)
SET @position = CHARINDEX(@delimiter, @list, 1)
END
END
RETURN
END
(
@list NVARCHAR(MAX) ,
@delimiter NCHAR(1) = ',' --Defaults to CSV
)
RETURNS
@tableList TABLE ( value nvarchar(MAX) )
AS
BEGIN
DECLARE @value NVARCHAR(MAX)
DECLARE @position INT
SET @list = LTRIM(RTRIM(@list))+ ','
SET @position = CHARINDEX(@delimiter, @list, 1)
IF REPLACE(@list, @delimiter, '') <> ''
BEGIN
WHILE @position > 0
BEGIN
SET @value = LTRIM(RTRIM(LEFT(@list, @position - 1)))
IF @value <> ''
BEGIN
INSERT INTO @tableList (value)
VALUES (@value)
END
SET @list = RIGHT(@list, LEN(@list) - @position)
SET @position = CHARINDEX(@delimiter, @list, 1)
END
END
RETURN
END
Comments
Post a Comment