sql server - Case in SQL join statement -
i have use conditional statement in join:
select * inner join b on a.id = b.id if b.id null or b.id = '' or a.id null or a.id = '' should a.name = b.name, instead of a.id = b.id
i have use conditional statement in join:
select * inner join b on a.id = b.id if b.id null or b.id = '' should a.id2 = b.id2 instead of a.id = b.id.
is correct if this:
select * inner join b on (b.id not null , b.id <> '' , a.id not null , a.id <> '' , a.id = b.id) or ((b.id null or b.id = '' or a.id null or a.id = '') , a.name = b.name)
i think want this:
select * inner join bid on (bid.id not null , bid.id <> '' , a.id not null , a.id <> '' , a.id = bid.id) inner join bname on ((bname.id null or bname.id = '' or a.id null or a.id = '') , a.name = bname.name) that join on b table twice, 1 join when id not null , second join when id null , join on name column instead. works case statement because 2 joins b table mutually exclusive.