Het is misschien een beetje kwetsbaar en niet zo toekomstbestendig, maar Pivot kan je geven wat je wilt:
SELECT *
FROM (
SELECT attr_name, attr_value
FROM test
)
PIVOT
( MIN(attr_value)
FOR attr_name IN ( 'ABC','GHI','MNO' )
)
Ik raad je echter aan om te overwegen of je het echt in dat formaat nodig hebt en kijk of je het in een natuurlijker formaat kunt uitbrengen.