• Here's a horrible and almost completely useless solution, but it does work... although it doesn't return the elements in the shortened notation....

    DECLARE @XMLTest TABLE( [Name] [NVarChar](50) NOT NULL )

    DECLARE @SQL AS VarChar(500)

    INSERT @XMLTest ([Name]) VALUES (N'One¬d¦Uº')

    INSERT @XMLTest ([Name]) VALUES (N'Two')

    INSERT @XMLTest([Name]) VALUES (N'Three')

    SELECT

    @SQL = 'SELECT [' +

    Max(CASE Ranking WHEN 1 THEN Name ELSE Null END) + '] = '''', [' +

    Max(CASE Ranking WHEN 2 THEN Name ELSE Null END) + '] = '''', [' +

    Max(CASE Ranking WHEN 3 THEN Name ELSE Null END) + '] = ''''' +

    'FOR XML RAW(''''), ELEMENTS'

    FROM

    (

    SELECT

    ROW_NUMBER() OVER(ORDER BY Name) AS Ranking,

    Name

    FROM

    @XMLTest

    ) X

    EXEC (@SQL)