Do you find this simpler?
SELECTid,
MAX( CASE WHEN characteristic = 'color' THEN value ELSE NULL END ) AS color,
MAX( CASE WHEN characteristic = 'age' THEN value ELSE NULL END ) AS age,
MAX( CASE WHEN characteristic = 'gender' THEN value ELSE NULL END ) AS gender,
MAX( CASE WHEN characteristic = 'cost' THEN value ELSE NULL END ) AS cost,
MAX( CASE WHEN characteristic = 'description' THEN value ELSE NULL END ) AS description
FROM#temp AS t
GROUP BY id
If Yes, these are called CROSS TABS and you can find more information on this technique below
Cross Tabs and Pivots, Part 1 – Converting Rows to Columns[/url]
Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs [/url]
How to post data/code on a forum to get the best help - Jeff Moden
http://www.sqlservercentral.com/articles/Best+Practices/61537/