You cannot derive columns dynamically.
You will have to do a self-join(outer) of Per_addresses table as many number of times as you want to show the columns.
Can I have a small sample query how to get the result
I need the logic to write the query.
Can someone please help me in that.
You can try something like this.
select address_line1,(select address_line1 from per_Addresses A where a.address_id!=b.address_id and a.person_id=b.person_id and a .date_from=b.date_from)
from per_Addresses B where b.person_id=10984 and rownum=1;
If the person have multiple addresses?