C'est peut-être un peu fragile et pas à l'épreuve du temps, mais Pivot peut vous donner ce que vous voulez :
SELECT *
FROM (
SELECT attr_name, attr_value
FROM test
)
PIVOT
( MIN(attr_value)
FOR attr_name IN ( 'ABC','GHI','MNO' )
)
Cependant, je vous conseille de déterminer si vous en avez vraiment besoin dans ce format et de voir si vous pouvez le sortir dans un format plus naturel.