Pode ser um pouco frágil e não tão à prova de futuro, mas o Pivot pode dar o que você deseja:
SELECT *
FROM (
SELECT attr_name, attr_value
FROM test
)
PIVOT
( MIN(attr_value)
FOR attr_name IN ( 'ABC','GHI','MNO' )
)
No entanto, eu aconselho que você considere se você realmente precisa nesse formato e veja se você pode lançá-lo em um formato mais natural.