tratando de aplanar filas en columnas

Tengo un grupo de filas en una tabla que tienen una identificación. Estoy tratando de aplanarlo en filas con múltiples columnas. Estoy casi seguro de que he hecho esto con un cte y tal vez una partición.

He usado cte's para eliminar datos duplicados y pensé que he hecho algo similar a lo que estoy tratando de lograr aquí. Pude encontrar una solución viable (enumerada a continuación), pero todavía siento que debería estar disponible una solución más elegante.

CREATE TABLE #MyTable ( RowID int , field VARCHAR(10), value  VARCHAR(10))  

INSERT INTO #MyTable ( RowID, field, value ) VALUES  ( 1, 'first', 'neil' )

INSERT INTO #MyTable ( RowID, field, value ) VALUES  ( 2, 'first', 'bob'  )

INSERT INTO #MyTable ( RowID, field, value ) VALUES  ( 3, 'first', 'tom'  )

INSERT INTO #MyTable ( RowID, field, value ) VALUES  ( 1, 'last', 'young' )

INSERT INTO #MyTable ( RowID, field, value ) VALUES  ( 2, 'last', 'dylan' )

INSERT INTO #MyTable ( RowID, field, value ) VALUES  ( 3, 'last', 'petty' )

SELECT * FROM #mytable

--intentando lograr esto con cte / partition:

SELECT rowid, 
   [first] = (Select value FROM #mytable where field = 'first' and rowid = t.rowid), 
   [last] = (Select value FROM #mytable where field = 'last' and rowid = t.rowid)
FROM #mytable t
GROUP BY rowid

Respuestas a la pregunta(1)

Su respuesta a la pregunta