Sql server 因为您不使用union all@EDOST4,如果您只想从结果输出中消除重复项,那么可以在SELECT之后立即使用DISTINCT关键字。我建议您只有在理解了为什么会首先生成重复项之后才能执行此操作。此查询的结果与死锁的结果相同-即,它复制了一些记录。虽然
Sql server 因为您不使用union all@EDOST4,如果您只想从结果输出中消除重复项,那么可以在SELECT之后立即使用DISTINCT关键字。我建议您只有在理解了为什么会首先生成重复项之后才能执行此操作。此查询的结果与死锁的结果相同-即,它复制了一些记录。虽然,sql-server,Sql Server,因为您不使用union all@EDOST4,如果您只想从结果输出中消除重复项,那么可以在SELECT之后立即使用DISTINCT关键字。我建议您只有在理解了为什么会首先生成重复项之后才能执行此操作。此查询的结果与死锁的结果相同-即,它复制了一些记录。虽然我的查询并不意味着在#email表中有多条匹配记录。正如@scsimon you cat try distinct所提到的,此查询的结果与死锁的-ie相同。它复制了一些记录。虽然我的查询并不意味着在#email表中有多条匹配记录。正如@scsi
因为您不使用union all@EDOST4,如果您只想从结果输出中消除重复项,那么可以在SELECT之后立即使用DISTINCT关键字。我建议您只有在理解了为什么会首先生成重复项之后才能执行此操作。此查询的结果与死锁的结果相同-即,它复制了一些记录。虽然我的查询并不意味着在#email表中有多条匹配记录。正如@scsimon you cat try distinct所提到的,此查询的结果与死锁的-ie相同。它复制了一些记录。虽然我的查询并不意味着在#email表中有多条匹配记录。正如@scsimon所提到的,你可以尝试不同的方法
select a.*
from #data a
join #email b on b.email=coalesce(a.rep_email_address,a.email)
where a.rep_email_address<>a.email
select a.*
from #data a
join #email b on a.email=b.email
except
select a.*
from #data a
join #email b on a.rep_email_address=b.email
union
select a.*
from #data a
join #email b on a.rep_email_address=b.email
where a.rep_email_address<>a.email
SELECT
a.*,
SomeColumn = ISNULL(e1.SomeColumn, e2.SomeColumn)
from
#data a
LEFT JOIN #email e1
ON e1.email = a.rep_email_address
LEFT JOIN #email e2
ON e2.email = a.email
AND e1.email IS NULL
WHERE
a.rep_email_address <> a.email
AND (
e1.email IS NOT NULL
OR
e2.email IS NOT NULL
);
SELECT a.*
FROM #data a
JOIN #email b
ON (a.rep_email_address = b.email
OR a.email = b.email )
WHERE a.rep_email_address<>a.email;
# Not sure why or IF you need this where clause specifically.
select a.*
from #data a
join #email b on b.email=coalesce(a.rep_email_address,a.email)
where ISNULL( a.rep_email_address, '' ) <> ISNULL( a.email, '' )
SELECT a.*
FROM #data AS a
INNER JOIN #email AS b ON b.email = a.rep_email_address OR b.email = a.email
WHERE a.rep_email_address <> a.email OR ( a.rep_email_address IS NULL OR a.email IS NULL )