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 )