sql中如何刪除表中重複的記錄,sql中如何刪除一個表中重複的記錄

時間 2021-08-30 23:25:55

1樓:

sql中刪除一個表中的重複記錄可以採用如下步驟:

1、把a_dist表的記錄用distinct去重,結果放到臨時表中。

select  distinct * into #temp from a_dist;

2、把a_dist表的記錄全部刪除。

delete  from a_dist;

3、把臨時表中的資料資訊導進到a_dist表中,並刪除臨時表。

insert  into a_dist select * from #temp;

drop table #temp;

2樓:南北

資料庫去重複有以下三種方法:

1.兩條記錄或者多條記錄的每一個欄位值完全相同,這種情況去重複最簡單,用關鍵字distinct就可以去掉。

2.兩條記錄之間之後只有部分欄位的值是有重複的,但是表存在主鍵或者唯一性id。如果是這種情況的話用distinct是過濾不了的,這就要用到主鍵id的唯一性特點及group by分組。

3.兩條記錄之間之後只有部分欄位的值是有重複的,但是表不存在主鍵或者唯一性id。這種情況可以使用臨時表,講資料複製到臨時表並新增一個自增長的id,在刪除重複資料之後再刪除臨時表。

3樓:匿名使用者

可以給你個想法,把不重複的多出來放到一個臨時表中,刪除原表,再將臨時表的資料插入原表

4樓:匿名使用者

先刪後加

delete from a_dist where id ='1' and name= 'abc' 執行刪掉所有這樣的記錄,然後把資料記錄下來在新增一次

insert into a_dist values(1,'abc');

5樓:匿名使用者

如果記錄完全相同才算重複記錄,那麼: (sql server2000下測試通過)

select distinct * into #tmpp from tid

delete from tid

insert into tid select * from #tmpp

drop table #tmpp

如果有id主鍵(數字,自增1的那種),那麼:(sql server2000下測試通過)

delete from tablea where id not in

(select id = min(id) from tablea group by name)

6樓:匿名使用者

還是跟著熱心網友混生活吧。

7樓:天之痕

delete 表 a wher rowid <>(max(rowid) from 表 b

where a.重複項=b.重複項 );

8樓:匿名使用者

create view a_dist_view as

select a.*, row_number() over(order by id, name) rn from a_dist as a

delete from a_dist_view where rn <> 1

一個表中有重複記錄如何用sql語句查詢出來?

9樓:進濱海檢洲

不知道你什麼資料庫.

如果資料庫支援

row_number()

函式的話,

倒是很省事的.

--首先建立測試表

create

table

test_delete(

name

varchar(10),

value

int);

go--

測試資料,其中

張三100

與王五80

是完全一樣的

insert

into

test_delete

select

'張三',

100union

allselect

'張三',

100union

allselect

'李四',

80union

allselect

'王五',

80union

allselect

'王五',

80union

allselect

'趙六',

90union

allselect

'趙六',

70go

--首先查詢一下,

row_number

效果是否滿足預期

select

row_number()

over

(partition

byname,

value

order

by(select1))

asno,

name,

value

from

test_delete

noname

value

-----

----------

-----------1李四

801王五802王五

801張三1002張三

1001

趙六701趙六

90從結果上可以看到,如果有重複的,完全一樣的話,no是有大於1的。

sql中如何恢復用delete刪除的記錄

great佯裝埋倦 一 delete 語句 delete 語句用於刪除表中的行。語法delete from 表名稱 where 列名稱 值二 刪除某行 fred wilson 會被刪除 delete from person where lastname wilson 三 刪除所有行 可以在不刪除表的...

求刪除SQL資料庫中某個表的重複資料

1.先將umane用乙個臨時表存起來 select distinct uname uname into aform users 2.刪除users表內的資料 delete from users 3.把臨時表使用者加到users表中,並將預設upwd全設為1234要看你upwd是什麼資料型別 如果是數...

sql如何把表名中包含某字元的表刪除

以下儲存過程實測通過,不過,使用要小心,很危險,因為會刪除一批表!create procedure deletetables str varchar 100 as declare name varchar 100 select name as 請看一下所有刪除的表 from sysobjects w...