sql裡面如何刪除重複的記錄,SQL裡面如何刪除重複的記錄?

時間 2022-03-26 00:35:24

1樓:攜一人白手

可以用這條語句刪除重覆記錄

delete from

(select rownumber()

over (partition by 欄位名)from 表名) as e(rn) where rn<>1;

sql中如何刪除乙個表中重複的記錄?

2樓:

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;

3樓:南北

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

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

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

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

4樓:匿名使用者

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

5樓:匿名使用者

先刪後加

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

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

6樓:匿名使用者

如果記錄完全相同才算重覆記錄,那麼: (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)

7樓:匿名使用者

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

8樓:天之痕

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

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

9樓:匿名使用者

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資料庫**現重複行資料,如何刪除這些重覆記錄?

10樓:普實軟體

假設存在乙個產品資訊表products,其表結構如下:

create table products (

productid int,

productname nvarchar (40),

unit char(2),

unitprice money

)表中資料如圖:

圖中可以看出,產品chang和tofu的記錄在產品資訊表中存在重複。現在要刪除這些重複的記錄,只保留其中的一條。步驟如下:

第一步——建立一張具有相同結構的臨時表

create table products_temp (

productid int,

productname nvarchar (40),

unit char(2),

unitprice money

)第二步——為該錶加上索引,並使其忽略重複的值

方法是在企業管理器中找到上面建立的臨時表products _temp,單擊滑鼠右鍵,選擇所有任務,選擇管理索引,選擇新建。如圖2所示。

按照圖2中圈出來的地方設定索引選項

第三步——拷貝產品資訊到臨時表

insert into products_temp select * from products

伺服器: 訊息 3604,級別 16,狀態 1,行 1

已忽略重複的鍵。

它表明在產品資訊臨時表products_temp中不會有重複的行出現。

第四步——將新的資料匯入原表

將原產品資訊表products清空,並將臨時表products_temp中資料匯入,最後刪除臨時表products_temp。

delete products  insert into products select * from products_temp drop table products_temp

這樣就完成了對錶中重覆記錄的刪除。無論表有多大,它的執行速度都是相當快的,而且因為幾乎不用寫語句,所以它也是很安全的

11樓:

一般情況下,資料庫去重複有以下那麼三種方法:

第一種:

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

select distinct * from table

第二種:

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

select * from table where id in (select max(id) from table group by [去除重複的欄位名列表,....])

第三種:

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

//建立臨時表,並將資料寫入到臨時表

select identity(int1,1) as id,* into newtable(臨時表) from table

//查詢不重複的資料

select * from newtable where id in (select max(id) from newtable group by [去除重複的欄位名列表,....])

//刪除臨時表

drop table newtable

12樓:何念壘

怕用別的方法刪除出錯的話,可以用 去重查詢,放到另一張表中,刪除後再放回去啊!

select distinct * into a from b 去重存另一張表

delete b-- 刪除b中資料

--放回資料

insert into b

select * from a

注意:分開執行!用go分開的話,有可能刪除資料,但因為語句沒結果而未完全刪除。

如何刪除資料庫中相同的記錄其中的一條,但要保留一條資料?

13樓:匿名使用者

建議這樣做,比較簡單,給表加乙個id欄位,預設自增,這樣不會影響表的其他結構,然後寫這樣的sql:

delete from demo where id in (select id from demo where id <> (select top 1 id from demo where name = 'name' and age = 'age') and name = 'name' and age = 'age')

雖然沒測試,不過感覺肯定可行!只是個建議,呵呵!

14樓:匿名使用者

select * from demo

sql語句刪除重複的記錄

在pdf檔案裡面怎樣刪除頁面,如何刪除pdf中的一頁 PDF檔案中的頁面怎麼刪除?

紙質的檔案,不要某些頁面了,找出來撕是哪一頁然後撕掉丟掉就可以了,在銷毀檔案時要撕毀避免洩露綱要資訊。檔案是電子檔。像pdf這種檔案裡面有需要刪除的頁面的方法就是在你檔案裡面選擇頁面,然後因為有編輯器工具,頁面上點選 編輯 工具,在欄目裡面點選 刪除 鍵,這是電子文件的刪除方式,是不是與我們常用的檔...

裡面如何設定自動生成目錄,WOrd裡面如何設定自動生成目錄

office學習技巧 word怎麼設定自動生成目錄? 影者東昇 工具 word2010 1 開啟word文件,按照下圖所示,進行標題格式設定2 如下圖所示,先點選引用,然後點選目錄,選擇內建格式3 目錄生成如下 挏嘅鰏敀湻瘜蓑 要想自動生成題目,打檔案時應設定題目格式。一 輸入題目時這樣操作 1 開...

裡面如何自動生成目錄,word裡面如何自動生成目錄

word中怎麼自動生成目錄 要想自動生成題目,打檔案時應設定題目格式。一 輸入題目時這樣操作 1 開啟word文件輸入題目時,點選單字型欄左側樣式視窗,選 題目1 並選好字型和字型大小 如果想在目錄中顯示二級題目,輸入二級題目時應選擇 題目2 2 輸入正文時,則應在樣式視窗選擇 正文 3 如果檔案已...

SQL刪除語句,刪除行,列,表,SQL語句如何刪除列?

刪除行delete from table where condition 例如delete from employeesswhere emp id 40 刪除employees表裡面 emp id為40的行刪除列alter table table drop column column 例如alter...

在企業裡面如何做好班長,在企業裡面如何做好乙個班長

在工廠,作為班組長要管理好下面的幾號人,並不是什麼難事 首先,不論做什麼,要求下去的東西一定要自己做出表率,不能有 只准州官防火,不准百姓點燈的事 出現,這是威信建立得第一步 第二,自己的業務能力要強,所謂業務能力就是指你對產品判定標準的熟悉程度,不要讓下面的人一問三不知,這是威信建立的第二步 第三...