Try with this:
select t1.name,t1.bday,t2.address,t2.contactnum
from table1 as t1
left join table2 as t2 on t1.p_id = t2.p_id
where (@qualified = '2' AND t2.role is null) OR (@qualified = '3' AND t2.role is not null)
I believe this syntax represents the conditional expression that you were trying to implement. However, such WHERE
clause might result in a performance issues. If that would happen you should use:
IF @qualified = '2' THEN
BEGIN
select t1.name,t1.bday,t2.address,t2.contactnum
from table1 as t1
left join table2 as t2 on t1.p_id = t2.p_id
where t2.role is null
END
IF @qualified = '3' THEN
BEGIN
select t1.name,t1.bday,t2.address,t2.contactnum
from table1 as t1
left join table2 as t2 on t1.p_id = t2.p_id
where t2.role is not null
END