Es mag ein wenig anfällig und nicht so zukunftssicher sein, aber Pivot kann Ihnen geben, was Sie wollen:
SELECT *
FROM (
SELECT attr_name, attr_value
FROM test
)
PIVOT
( MIN(attr_value)
FOR attr_name IN ( 'ABC','GHI','MNO' )
)
Ich würde Ihnen jedoch raten, zu überlegen, ob Sie es wirklich in diesem Format benötigen, und zu sehen, ob Sie es in einem natürlicheren Format herausbringen können.