I don't see the need for PL/SQL, plain SQL will do just as well
select case
when column_a = 'Y' then colum_b
else colum_d
end as name,
case
when column_a = 'Y then colum_d
else column_e
end as address
from the_table;
Encapsulating that in a view is probably a good idea