這是我正在嘗試解決的一種情況。我有一個加載了重複的表格。它發生的原因是類似的行從兩個不同的來源加載。這在包裝中正在被照顧。刪除腳本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 –