这是我正在尝试解决的一种情况。我有一个加载了重复的表格。它发生的原因是类似的行从两个不同的来源加载。这在包装中正在被照顾。删除脚本SQL Server 2008
但我想删除那些重复的行。这里没有关键属性(我不能使用没有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
如何将具有不同子句的数据复制到另一个表/数据库并删除原始数据。也许不是一个选项? –
@ daniel_aren,我很欣赏你的回复,但是它有一个与其他不同的属性。再次感谢。 –
也许这个链接可能有帮助。 http://support.microsoft.com/kb/139444 –