Попробуйте запрос ниже:
create table Table3
(Name varchar2(20),
phone number,
"B.mail" varchar2(50),
"P.mail" varchar2(50));
insert into Table3 values ('Jack',12,'ab12@test.com','a21@test.com');
insert into Table3 values ('Ram',12345,null,'Ram@test.com');
insert into Table3 values ('Raja',543,'Raj@test.com',null);
insert into Table3 values ('Rik',122,null,null);
SELECT Name, Phone, COALESCE("B.mail","P.mail") Email, CASE WHEN "B.mail" IS NOT NULL THEN 'Y' ELSE 'N' END as IsPrimary,CASE WHEN "B.mail" IS NOT NULL THEN 'B' ELSE 'P' END as EmailType
FROM Table3 t
where "B.mail" IS NOT NULL OR "P.mail" IS NOT NULL
UNION
SELECT Name, Phone, COALESCE("P.mail","B.mail") Email, CASE WHEN "P.mail" IS NOT NULL THEN 'N' ELSE 'Y' END as IsPrimary,CASE WHEN "P.mail" IS NOT NULL THEN 'P' ELSE 'B' END as EmailType
FROM Table3 t
where "B.mail" IS NOT NULL OR "P.mail" IS NOT NULL