SQL Server 批量刪除重複記錄(批量、快速、安全)
關鍵字:ROW_NUMBER(或RANK) partition BY
利用分組排序,可實現快速、安全、批量的對重複記錄進行刪除,
示例:
建立測試表
CREATE TABLE [dbo].[T_Corse](
[ID] [INT] IDENTITY(1,1) NOT NULL,--主鍵
[UserID] [INT] NOT NULL, --使用者主鍵
[CourseCode] [VARCHAR](50) NULL, --課程程式碼
[SubjectCode] [VARCHAR](50) NULL, --學段程式碼
[Creator] [VARCHAR](50) NULL,
[CreateTime] [DATETIME] NULL,
CONSTRAINT [PK_T_Corse] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
新增測試資料(自行新增即可)
分組編號
--按UserID,CourseCode,SubjectCode分組排序
SELECT *,RANK() OVER(PARTITION BY UserID,CourseCode,SubjectCode ORDER BY ID DESC) AS RowNo
FROM dbo.T_Corse;
獲取重複記錄
--重複記錄查詢
SELECT * FROM (
SELECT *,RANK() OVER(PARTITION BY UserID,CourseCode,SubjectCode ORDER BY ID DESC) AS RowNo
FROM dbo.T_Corse
)Ranked WHERE Ranked.RowNo>1;
刪除重複記錄
--刪除重複記錄(保留最新記錄)
DELETE T_Corse
WHERE id IN(
SELECT ID FROM(
SELECT *,RANK() OVER(PARTITION BY UserID,CourseCode,SubjectCode ORDER BY ID DESC) AS RowNo
FROM dbo.T_Corse
)Ranked WHERE Ranked.RowNo>1
);
相關文章
- ORACLE批量刪除無主鍵重複資料Oracle
- sql刪除重複記錄只保留一條SQL
- MS SQL Server 刪除重複行資料SQLServer
- 刪除重複id的記錄
- 批量刪除 redis keysRedis
- ELK批量刪除索引及叢集相關操作記錄索引
- php(js)批量刪除/單個刪除PHPJS
- MariaDB刪除重複記錄效能測試
- Linux批量刪除檔案Linux
- 批量刪除容器和映象
- git 批量刪除本地分支Git
- linux 模糊批量刪除檔案Linux
- docker 批量刪除容器和映象Docker
- 批量刪除大量小檔案
- MySQL刪除重複記錄並保留第一條MySql
- 如何批量刪除指定的GitHub ReposGithub
- Mac電腦如何批量刪除照片?Mac
- 記一次SQL Server刪除SQL調優SQLServer
- vue+element-ui操作刪除(單行和批量刪除)VueUI
- Jenkins批量刪除構建歷史版本Jenkins
- Mysql語句查詢指定重複記錄和刪除重複記錄僅保留一條【親測可以】MySql
- 6.12php對資料庫的刪除和批量刪除PHP資料庫
- Oracle如何刪除表中重複記錄保留第一條Oracle
- Linux批量刪除同一型別檔案Linux型別
- 批量刪除MSSQL 中主外來鍵約束SQL
- MySQL 批量更新、刪除資料shell指令碼MySql指令碼
- Linux批量刪除指定型別的檔案Linux型別
- liunx批量刪除指定字尾的檔案
- SQL批量複製命令的六個陷阱PBSQL
- mysql連結很多,批量刪除異常程式processlistMySql
- Docker批量操作(啟停、刪除、歸檔、載入)Docker
- javascript實現 checkbox全選和批量刪除功能JavaScript
- LINUX 使用批量刪除檔案的幾種方法Linux
- Git批量刪除分支| 8月更文挑戰Git
- mysql 刪除重複項MySql
- 刪除oracle重複值Oracle
- JavaScript 刪除重複字元JavaScript字元
- 刪除重複資料
- 異構資料庫間批量表快速複製資料庫