Sql server 2008 如何比较一个表中的两行
我有一个staging table,其中有employee列,如Sql server 2008 如何比较一个表中的两行,sql-server-2008,Sql Server 2008,我有一个staging table,其中有employee列,如firstname、middlename、lastname、department、effectivedate、canceldate和processdate 我必须将每一行与其他行进行比较,以查找重复的行,如果两行匹配,我必须选择一行的处理日期大于 我使用带有densite\u rank函数的CTE查找重复项,但我不知道如何比较同一个表中的行 提前感谢。这将找到处理日期更大的重复记录 select s1.* from staging
firstname、middlename、lastname、department、effectivedate、canceldate
和processdate
我必须将每一行与其他行进行比较,以查找重复的行,如果两行匹配,我必须选择一行的处理日期大于
我使用带有densite\u rank
函数的CTE查找重复项,但我不知道如何比较同一个表中的行
提前感谢。这将找到处理日期更大的重复记录
select s1.*
from staging s1
join staging s2
on s1.firstname = s2.firstname
and s1.middlename = s2.middlename
and s1.lastname = s2.lastname
and s1.department = s2.department
-- compare other columns that make records "duplicates" as appropriate
and s1.processdate > s2.processdate; -- this makes the s1 record the latest
很抱歉,暂存表也有其他列,但我需要上面的列用最大进程日期填充特定表,并将其他记录标记为错误。