(there must be a better way)
Code:
select 
b.id,  b.rest, 
decode(a1.id, NULL, a2.name, a1.name)
from   b, a a1, a a2
where  b.id = a1.id(+)
and    a2.id = first_row_a_id;