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.