情况:
期望的结果:
如果表2有任何记录,我只希望匹配表1中的记录。否则,我想要表1中的所有记录。
我意识到我可以这样做:
DECLARE @count int
SELECT @count=COUNT(*) FROM Table2
IF @count>0
SELECT t1.* FROM Table1 t1 INNER JOIN Table2 t2 ON t1.id=t2.id
ELSE
SELECT * FROM Table1
但是,如果可能的话,我试图避免IF
语句。
这甚至可能吗?
答案 0 :(得分:2)
select t1.*
from Table1 t1
left join
Table2 t2
on t1.id = t2.id
where t2.id is not null -- Match found
or not exists -- Or Table2 is empty
(
select *
from Table2
)