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...