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

Comments

Popular posts from this blog

Querying a Data Table Using Select Method and Lambda Expressions in Dot Net

GetPhoneSSNFormat