SQL Server資料庫:有時候在處理資料時會遇到不加主鍵的表,導致資料表內出現了一模一樣的資料,剛開始第一時間想到的方式是,把兩條資料全部洗掉,然后再插入一條,但是這種可能資料量比較少的話,還可以,沒有那么麻煩,一旦出現大量的資料需要處理,就有點浪費時間了,后來又想到了下面這種方式,個人覺得還不錯,今天就簡單介紹下這個如何在資料表內洗掉所有欄位都相同的重復資料,
首先創建一個臨時表并插入一些資料,用于模擬該場景,
--創建一個#temp的臨時表 create table #temp ( ID int not null, Name varchar(20) null ) --在臨時表內插入測驗資料 insert into #temp(ID,Name) values('1','測驗'); insert into #temp(ID,Name) values('1','測驗'); insert into #temp(ID,Name) values('2','測驗2'); insert into #temp(ID,Name) values('2','測驗'); insert into #temp(ID,Name) values('3','測驗');
測驗表結果查詢
select * from #temp
| ID | Name |
| 1 | 測驗 |
| 1 | 測驗 |
| 2 | 測驗2 |
| 2 | 測驗 |
| 3 | 測驗 |
去重并洗掉重復資料SQL陳述句:
--查詢去重并洗掉重復資料 with TEST as ( select ID,Name,row_number() over(partition by ID,Name order by ID) RowNum from #temp ) delete from TEST where RowNum > 1 --查詢去重后的資料 select * from #temp
| ID | Name |
| 1 | 測驗 |
| 2 | 測驗2 |
| 2 | 測驗 |
| 3 | 測驗 |
測驗到此結束,記得最后再把測驗用的臨時表洗掉!!!
DROP TABLE #temp
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/374429.html
標籤:SQL Server
