sqlserver CTE刪除重復(fù)數(shù)據(jù)的實(shí)現(xiàn)方法
sqlserver CTE刪除重復(fù)數(shù)據(jù)
實(shí)現(xiàn)刪除重復(fù)數(shù)據(jù),并保留一條
- 使用
ROW_NUMBER()窗口函數(shù)為每一行分配一個(gè)行號(hào),按重復(fù)列的條件分組; - 使用
CTE來(lái)表示重復(fù)的行; - 刪除行號(hào)大于1的行。
WITH CTE AS ( SELECT IOT_TerminalNo,SendDate,EVoltage,ECurrent,CreateTime, ROW_NUMBER() OVER ( PARTITION BY IOT_TerminalNo, SendDate ORDER BY (SELECT 0) ) AS rn FROM Equipment_1001 where --IOT_TerminalNo='Weldjoin-000001' AND SendDate >='2025-04-01 00:00:00.000' AND SendDate<'2025-07-07 13:26:32.830' ) DELETE FROM CTE WHERE rn > 1;
PARTITION BY:按條件分組;rn > 1:刪除所有重復(fù)的行,只保留每組中的第一行;
SQL server 刪除完全重復(fù)的數(shù)據(jù)并保留一條
前提
SQL server 數(shù)據(jù)庫(kù),某張表有主鍵,且存在多條完全重復(fù)的數(shù)據(jù),并且重復(fù)數(shù)據(jù)的ID也完全相同,在刪除其中一條后,所有的重復(fù)數(shù)據(jù)全都被刪除了。
實(shí)現(xiàn)刪除重復(fù)數(shù)據(jù),并保留一條
- 使用
ROW_NUMBER()窗口函數(shù)為每一行分配一個(gè)行號(hào),按重復(fù)列的條件分組; - 使用
CTE來(lái)表示重復(fù)的行; - 刪除行號(hào)大于1的行。
WITH CTE AS ( SELECT ## 字段 code, timePoint, ROW_NUMBER() OVER ( PARTITION BY code, TimePoint ORDER BY (SELECT 0) ) AS rn FROM table_name ) DELETE FROM CTE WHERE rn > 1;
解釋
PARTITION BY:按條件分組;rn > 1:刪除所有重復(fù)的行,只保留每組中的第一行;
到此這篇關(guān)于sqlserver CTE刪除重復(fù)數(shù)據(jù)的文章就介紹到這了,更多相關(guān)sqlserver cte刪除重復(fù)數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SqlServer公用表表達(dá)式(CTE)的具體使用
- Java中String的JdbcTemplate連接SQLServer數(shù)據(jù)庫(kù)的方法
- 使用SqlServer CTE遞歸查詢處理樹(shù)、圖和層次結(jié)構(gòu)
- 在sqlserver中如何使用CTE解決復(fù)雜查詢問(wèn)題
- SQLSERVER2008中CTE的Split與CLR的性能比較
- 教你幾種在SQLServer中刪除重復(fù)數(shù)據(jù)方法
- 刪除sqlserver數(shù)據(jù)庫(kù)日志和沒(méi)有日志的數(shù)據(jù)庫(kù)恢復(fù)辦法
- SQLserver刪除某數(shù)據(jù)庫(kù)中所有表實(shí)現(xiàn)思路
相關(guān)文章
SQL Server 數(shù)據(jù)庫(kù)中的收縮數(shù)據(jù)庫(kù)和文件操作
收縮數(shù)據(jù)文件通過(guò)將數(shù)據(jù)頁(yè)從文件末尾移動(dòng)到更靠近文件開(kāi)頭的未占用的空間來(lái)恢復(fù)空間,在文件末尾創(chuàng)建足夠的空間后,可取消對(duì)文件末尾的數(shù)據(jù)頁(yè)的分配并將它們返回給文件系統(tǒng),本文給大家介紹SQL Server 數(shù)據(jù)庫(kù)中的收縮數(shù)據(jù)庫(kù)和文件的相關(guān)知識(shí),一起看看吧2023-07-07
SQL where條件和jion on條件的詳解及區(qū)別
這篇文章主要介紹了SQL where條件和jion on條件的詳解及區(qū)別的相關(guān)資料,這里舉例說(shuō)明該如何區(qū)分,需要的朋友可以參考下2016-12-12
Sql Server 開(kāi)窗函數(shù)Over()的使用實(shí)例詳解
這篇文章主要介紹了Sql Server 開(kāi)窗函數(shù)Over()的使用,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05
SQL Server查看login所授予的具體權(quán)限問(wèn)題
在SQL Server數(shù)據(jù)庫(kù)中如何查看一個(gè)登錄名(login)的具體權(quán)限呢,下面腳本之家小編給大家?guī)?lái)了SQL Server查看login所授予的具體權(quán)限問(wèn)題,感興趣的朋友一起看看吧2019-09-09
sqlserver只有MDF文件恢復(fù)數(shù)據(jù)庫(kù)的方法
因?yàn)橹挥衜df文件,想恢復(fù)數(shù)據(jù)庫(kù),大家可以用下面的代碼先測(cè)試2008-10-10
SQL?Server創(chuàng)建用戶定義函數(shù)
這篇文章介紹了SQL?Server創(chuàng)建用戶定義函數(shù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
談?wù)剆qlserver自定義函數(shù)與存儲(chǔ)過(guò)程的區(qū)別
這篇文章主要介紹了談?wù)剆qlserver自定義函數(shù)與存儲(chǔ)過(guò)程的區(qū)別,需要的朋友可以參考下2014-09-09

