2013-11-20 86 views
1

我有重複的問題。此查詢選擇重複項將一個select語句轉爲group,並讓子句變爲delete?

select account_number, acc_cd, seq, count (*) 
FROM table 
group by account_number, acc_cd, seq 
having count(*)>1 

現在我想將它變成刪除語句以刪除select語句的結果嗎?

我已經將副本的副本移動到tmp表中,因此我可以從select中刪除所有數據?

有誰知道該怎麼做?我看過嵌套的查詢,但我不確定。

回答

1

試試這個:

delete from MyTable 
where exists (
    select 1 from MyTable t2 
    where MyTable.account_number=t2.account_number and MyTable.acc_cd=t2.acc_cd and MyTable.seq=t2.seq 
) 
+0

嗨,歡呼聲,當我嘗試運行在Sybase即時得到錯誤,「子查詢只允許一個選擇列表項」我認爲這個問題是與COUNT(*),但它仍然發生? – rkyyk

+0

再試一次!我更新了 –

+0

嗨,謝謝你,但它不喜歡在WHERE IN克勞斯多個值。 我只是要移動到tmp表,然後刪除在哪裏excomal – rkyyk