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.