通過SQL語句刪除重覆記錄

2022-03-11 19:37:52 字數 1496 閱讀 6702

最近在專案裡碰到很多重覆記錄的事情,因為是設計業務裡的具體數值,所以不敢輕易全部刪除,資料量也很大,所以就倒騰了點**在sql裡進行刪除

純屬菜鳥,還望高手指教啊

1

--建立臨時表23

ifexists

(select

*from

tempdb.dbo.sysobjects

whereid=

object_id( '

tempdb.dbo.##temp

'))

4drop

table

##temp56

--將有重覆記錄的資料匯入到臨時表裡,並增添乙個字增列

7select

identity

(int,1

,1) as

ppkey,parameterrelatedid,businessparameterid

into

##temp

from

parameterrelated

where

regionid='

7e01d028-f84a-4d9a-9428-f68989215c0b

'and

yeartime

=2011

and

businessparameterid in(

select

businessparameterid

from

businessparameters)89

--分組後根據自增列的大小取出重覆記錄的第乙個記錄id

10select

*from

##temp

where

ppkey in(

select

min(ppkey)

from

##temp

group

bybusinessparameterid)

1112

--根據取出來的記錄id過濾,刪除掉那些重覆記錄自增列不是最小的記錄

13delete

from

parameterrelated

where

parameterrelatedid

notin(

select

parameterrelatedid

from

##temp

where

ppkey

in

(

select

min(ppkey)

from

##temp

group

bybusinessparameterid))

and

regionid='

7e01d028-f84a-4d9a-9428-f68989215c0b

'and

yeartime

=2011

SQL 語句刪除access重覆記錄語句

有兩個意義上的重覆記錄,一是完全重複的記錄,也即所有欄位均重複的記錄,二是部分關鍵字段重複的記錄,比如name欄位重複,而其他欄位不一定重複或都重複可以忽略。1 對於第一種重複,比較容易解決,使用 select distinct from tablename 就可以得到無重覆記錄的結果集。如果該錶需...

SQL查詢重覆記錄,刪除重覆記錄

1 查詢表中多餘的重覆記錄,重覆記錄是根據單個字段 docid 來判斷 select from tablename where docid in select docid from tablename group by docid h ing count docid 1 例二 select from...

SQL 刪除重覆記錄

例如 id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主鍵 要求得到這樣的結果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1delet...