1樓:
1.先將umane用一個臨時表存起來
select distinct(uname) uname into #a form users
2.刪除users表內的資料
delete from users
3.把臨時表使用者加到users表中,並將預設upwd全設為1234要看你upwd是什麼資料型別 如果是數字的就
insert users select uname,1234 from #a
是字元型的
insert users select uname,'1234' from #a
4.最後刪除臨時表
drop table #a
這樣所有人的初始密碼都變為1234
2樓:匿名使用者
有一個簡單的方法:
先建一張表 users2,表結構和users一樣然後insert into users2select distinct * from userscommit;
然後把users表刪除,users2表名改為users補充:可以不用臨時表的方法
delete from users
where rowid not in
(select rowid
from
(select a.rowid,a.*,row_number() over (partition by uname,upwd order by uname) num from users a)
where num<=1)
3樓:匿名使用者
如何查詢重複記錄?
select * from users
where rowid!=(select max(rowid) from users d
where users.uname=d.uname and users.upwd=d.upwd);
如何刪除重複記錄?
delete from users
where rowid!=(select max(rowid) from user d
where user.uname=d.uname and users.upwd=d.upwd);
試試吧,切記,刪之前先備份。
4樓:落月
select distinct * into #tmp from tablename
drop table tablename
select * into tablename from #tmpdrop table #tmp
利用臨時表進行刪除,把tablename改成你的表名就行了。
5樓:蝴蝶飛起來了
1.增加一個自增1的索引列
2.刪除部分欄位重複資料,僅保留id最小的一條記錄delete 《表名》 from 《表名》 aleft join(
select 索引列=min(索引列) from 《表名》
group by 《重複列名》--多條重複,逗號間隔)b on b.索引列=a.索引列
where b.索引列 is null;
3.刪除索引列
6樓:匿名使用者
如果是oracle,那可以利用rowid,效率很高delete from users where rowid in(select rid from
(select rowid rid,row_number() over(partition by uname order by rowid) rn from users)
where rn <> 1 );
如果是sql,就會慢一些
select uname,upwd into users_1 from users group by uname,upwd;
truncate table users;
drop table users;
renname users_1 to users;
7樓:
/**據oracle書記載,使用下面得語句可以刪除重複記錄,並且效率最高**/
delete from users where rowid in(select row_id from
(select rowid row_id,row_number() over (partition by uname,upwd order by rowid ) rn from users
) where rn <> 1);
8樓:匿名使用者
試試這個
delete from users
where rowid!=(select max(rowid) from user d group by uname,upwd )
9樓:匿名使用者
1、將源表資料備份
2、建立臨時表 temp_users,同樣包含欄位uname,upwd,資料型別與源表一致。
3、insert into temp_user select * from users group by uname,upwd
4、查詢表temp_users,看裡面資料是否是想要的、準確無誤的。
5、確認表temp_users中資料準確無誤後,刪除源表users中的資料
6、insert into users select * from temp_users
7、確認users表中資料ok後,drop table temp_users
ps:切忌第一步不要忘了。
補充回答:
用臨時表,是最穩的,最易懂的,最好掌握的,最可控的。
不用臨時表的方法有,上面這麼多人都說了,用之前還請驗證一下正確性,避免不必要的損失。
sql中如何刪除一個表中重複的記錄?
10樓:
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;
11樓:南北
資料庫去重複有以下三種方法:
1.兩條記錄或者多條記錄的每一個欄位值完全相同,這種情況去重複最簡單,用關鍵字distinct就可以去掉。
2.兩條記錄之間之後只有部分欄位的值是有重複的,但是表存在主鍵或者唯一性id。如果是這種情況的話用distinct是過濾不了的,這就要用到主鍵id的唯一性特點及group by分組。
3.兩條記錄之間之後只有部分欄位的值是有重複的,但是表不存在主鍵或者唯一性id。這種情況可以使用臨時表,講資料複製到臨時表並新增一個自增長的id,在刪除重複資料之後再刪除臨時表。
12樓:匿名使用者
可以給你個想法,把不重複的多出來放到一個臨時表中,刪除原表,再將臨時表的資料插入原表
13樓:匿名使用者
先刪後加
delete from a_dist where id ='1' and name= 'abc' 執行刪掉所有這樣的記錄,然後把資料記錄下來在新增一次
insert into a_dist values(1,'abc');
14樓:匿名使用者
如果記錄完全相同才算重複記錄,那麼: (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)
15樓:匿名使用者
還是跟著熱心網友混生活吧。
16樓:天之痕
delete 表 a wher rowid <>(max(rowid) from 表 b
where a.重複項=b.重複項 );
17樓:匿名使用者
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資料庫中某個表的重複資料
18樓:麼睿識充騰
1.先將umane用一個臨時表存起來
select
distinct(uname)
uname
into
#aform
users
2.刪除users表內的資料
delete
from
users
3.把臨時表使用者加到users表中,並將預設upwd全設為1234要看你upwd是什麼資料型別
如果是數字的就
insert
users
select
uname,1234
from
#a是字元型的
insert
users
select
uname,'1234'
from
#a4.最後刪除臨時表
drop
table
#a這樣所有人的初始密碼都變為1234
19樓:貿水風樑玲
select
distinct
*into
#tmp
from
tablename
drop
table
tablename
select
*into
tablename
from
#tmp
drop
table
#tmp
利用臨時表進行刪除,把tablename改成你的表名就行了。
sql server如何刪除一張表中與另一張表相同的資料
20樓:匿名使用者
兩種方式,一種是用巢狀,一個是關聯。
巢狀:如表1有如下資料
id name
1 張三
2 李四
3 王五
表2有如下資料
id現在要刪除表1中含有表2中id的資料,可用以下語句:
delete from 表1 where id in (select id from 表2)
關聯:如表1有如下資料
id name
1 張三
2 李四
3 王五
表2有如下資料
id name
1 張三
2 哈哈
現在要刪除表1中id和name同時等於表2中id和name的資料,可用以下語句:
delete from 表1 where exists (select 1 from 表2 where 表1.id=表2.id and 表1.name=表2.name);
求SQL。由於資料庫資料異常,求找出表A主鍵id相同,表資料記錄不一樣的記錄明細。舉例說明
select distinct t1.from tablea t1,tablea t2where t1.id t2.id and t1.col1 t2.col1 or t1.col2 t2.col2 問題就有錯,a 主鍵id相同,根本不可能。或者說你的資料表,用兩個欄位作主鍵,查詢兩個相同表中不同記...
求sql資料庫考試題答案,SQL資料庫考試試題,求高手解答
1.create database readbookon name readbook data,filename d server readbook data.mdf size 2mb,maxsize 10mb,filegrowth 1mb log on name readbook log,file...
如何獲取mysql資料庫中某個表的主鍵或唯段
主鍵確定的資料庫記錄行數唯一,但是主鍵組成不唯一,可以由多個欄位組成 主關鍵字 主鍵,primary key 是被挑選出來,主關鍵字作表的行的唯一標識的候選關鍵字。一個表只有一個主關鍵字。主關鍵字又可以稱為主鍵。主鍵可以由一個欄位,也可以由多個欄位組成,分別成為單欄位主鍵或多欄位主鍵。又稱主碼。並且...