Det kanske är lite ömtåligt och inte så framtidssäkrat, men Pivot kan ge dig vad du vill ha:
SELECT *
FROM (
SELECT attr_name, attr_value
FROM test
)
PIVOT
( MIN(attr_value)
FOR attr_name IN ( 'ABC','GHI','MNO' )
)
Jag skulle dock råda dig att överväga om du verkligen behöver det i det formatet och se om du kan få ut det i ett mer naturligt format.