• Sample data: -

    IF object_id('tempdb..#testEnvironment') IS NOT NULL

    BEGIN

    DROP TABLE #testEnvironment;

    END;

    SELECT ID, Name

    INTO #testEnvironment

    FROM (VALUES(1, 'Fred'),(2, 'Joe'),(3, 'Bob'))a(ID, Name);

    Query: -

    DECLARE @Delimitedlist VARCHAR(8000) = '1,3,2';

    SELECT STUFF((SELECT ','+a.Name

    FROM #testEnvironment a

    INNER JOIN (SELECT ItemNumber AS Ordering, Item

    FROM dbo.DelimitedSplit8K(@Delimitedlist,',')

    ) b ON a.ID = b.Item

    ORDER BY b.Ordering

    FOR XML PATH(''), TYPE).value('.','NVARCHAR(MAX)'),1,1,'');

    Result: -

    Fred,Bob,Joe

    dbo.DelimitedSplit8K function can be found here --> http://www.sqlservercentral.com/articles/Tally+Table/72993/%5B/url%5D.

    Solution will only work if your original deliminated string is never more than 8000 characters.


    Forever trying to learn
    My blog - http://www.cadavre.co.uk/
    For better, quicker answers on T-SQL questions, click on the following...http://www.sqlservercentral.com/articles/Best+Practices/61537/
    For better, quicker answers on SQL Server performance related questions, click on the following...http://www.sqlservercentral.com/articles/SQLServerCentral/66909/