これが私が解決しようとしている状況です。重複がロードされたテーブルがあります。これは、2 つの異なるソースから同様の行がロードされたために発生しました。それはパッケージで世話をされています。
しかし、重複している行を削除したいと思います。ここにはキー属性はありません (PK は使用できません)。2 つの情報源は、クリーブランド市とオハイオ州です。そして、行がどのソースからロードされたかを示す列があります(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