这是我试图解决的一种情况。我有一个装有重复项的表。发生这种情况是因为类似的行是从两个不同的来源加载的。这是在包装中处理的。
但我想删除那些重复的行。这里没有关键属性(我不能用没有PK)。这两个来源是克利夫兰市和俄亥俄州立大学。我有一列显示该行是从哪个源加载的(DataSource
列)。
因此在行中它显示为DataSource = 'Cleveland'
或DataSource = 'OhioState'
。
下面是我坚持的示例。你们能有不同的方法来删除那些我的行似乎效果不佳吗?再次感谢伙计们..我认为我试图接近的方式甚至不正确...
IF OBJECT_ID('tempdb..#Ohio') IS NOT NULL
BEGIN
DROP TABLE #Ohio
END
;WITH Oh AS
( SELECT ROW_NUMBER()OVER
(
PARTITION by UID,ADDRESS,CITY,STATE,Zip
ORDER BY
UID
) AS IA,UID,ADDRESS,City,State,Zip FROM F_staRes
)
SELECT * INTO #Ohio FROM Oh WHERE IA> 1 AND DataSource='Ohio'
IF OBJECT_ID('tempdb..#Clevland') IS NOT NULL
BEGIN
DROP TABLE #Clevland
END
;WITH Cle AS
( SELECT ROW_NUMBER()OVER
(
PARTITION by UID,ADDRESS,CITY,STATE,Zip
ORDER BY
UID
) AS CE,UID,ADDRESS,City,State,Zip FROM F_staRes
)
SELECT * INTO #Clevland FROM Cle WHERE CE> 1 AND DataSource!='Ohio'
select * from #Clevland--I want to delete this records
Intersect
select * from #Ohio