This works for me (sqlFiddle)
SELECT t.EID, tname.Value Name, tnote.Value Note, tadd.Value Additional
FROM Table1 t
INNER JOIN Table1 tname ON tname.Name = "Name" AND tname.EID = t.EID
INNER JOIN Table1 tnote ON tnote.Name = "Note" AND tnote.EID = t.EID
INNER JOIN Table1 tadd ON tadd.Name = "Additional" AND tadd.EID = t.EID
GROUP BY t.EID
Since answering this I've acquired more knowledge of SQL variants other than MySQL. This would be a (more graceful) solution for MS SQL-Server:
select * from (
select EID, Name as Col, Value from Table1
) p
pivot (
min(Value)
for Col in (Name, Note, Additional)
) pvt
(Note that aliasing Name
to Col
is necessary because it would conflict with the Name
column of the pivoted result)