久久机这里只有精品,国产69精品一区二区亚洲孕妇,91精品国产综合久久婷婷香蕉,午夜久久久久久电影

最新活動:電腦PC端+手機端+微網站+自適應網頁多模板選擇-建站388元起價!!!
當前位置:主頁 > 網站建設 > sql刪除重復數據的詳細方法建站知識

sql刪除重復數據的詳細方法建站知識

時間:2023-05-24 10:05:24 閱讀: 文章分類: 網站建設 作者: 網站編輯員

導讀:1建站知識重復數據,通常有兩種:一是完全重復的記錄,也就是所有字段的值都一樣;二是部分字段值重復的記錄如何seo優化推廣網站網站建設。

如何seo優化推廣網站網站建設

一. 刪除完全重復的記錄

完全重復的數據,通常是由于沒有設置主鍵/唯一鍵約束導致的。測試數據:

復制代碼 代碼如下:

if OBJECT_ID('duplicate_all') is not nulldrop table duplicate_all GO create table duplicate_all ( c1 int, c2 int, c3 varchar(100) ) GO insert into duplicate_all select 1,100,'aaa' union allselect 1,100,'aaa' union allselect 1,100,'aaa' union allselect 1,100,'aaa' union allselect 1,100,'aaa' union allselect 2,200,'bbb' union allselect 3,300,'ccc' union allselect 4,400,'ddd' union allselect 5,500,'eee'GO

網站建設教程

(1) 借助臨時表

利用DISTINCT得到單條記錄,刪除源數據,然后導回不重復記錄。如果表不大的話,可以把所有記錄導出一次,然后truncate表后再導回,這樣可以避免delete的日志操作。

復制代碼 代碼如下:

if OBJECT_ID('tempdb..#tmp') is not nulldrop table #tmp GO select distinct * into #tmp from duplicate_all where c1 = 1 GO delete duplicate_all where c1 = 1 GO insert into duplicate_all select * from #tmp

(2) 使用ROW_NUMBER

復制代碼 代碼如下:

with tmp as( select *,ROW_NUMBER() OVER(PARTITION BY c1,c2,c3 ORDER BY(getdate())) as num from duplicate_all where c1 = 1 ) delete tmp where num > 1

如果多個表有完全重復的行,可以考慮通過UNION將多個表聯合,插到一個新的同結構的表,SQL Server會幫助去掉表和表之間的重復行。

二. 刪除部分重復的記錄

部分列重復的數據,通常表上是有主鍵的,可能是程序邏輯造成了多行數據列值的重復。測試數據:

復制代碼 代碼如下:

if OBJECT_ID('duplicate_col') is not nulldrop table duplicate_col GO create table duplicate_col ( c1 int primary key, c2 int, c3 varchar(100) ) GO insert into duplicate_col select 1,100,'aaa' union allselect 2,100,'aaa' union allselect 3,100,'aaa' union allselect 4,100,'aaa' union allselect 5,500,'eee'GO

(1) 唯一索引

唯一索引有個忽略重復建的選項,在創建主鍵約束/唯一鍵約束時都可以使用這個索引選項。

復制代碼 代碼如下:

if OBJECT_ID('tmp') is not nulldrop table tmp GO create table tmp ( c1 int, c2 int, c3 varchar(100), constraint UQ_01 unique(c2,c3) with(IGNORE_DUP_建設網站公司KEY = ON) ) GO insert into tmp select * from duplicate_col select * from tmp

(2) 借助主鍵/唯一鍵來刪除通常會選擇主鍵/唯一鍵的最大/最小值保留,其他行刪除。以下只保留重復記錄中c1最小的行。

復制代碼 代碼如下:

delete from duplicate_col where exists(select 1 from duplicate_col b where duplicate_col.c1 > b.c1 and (duplicate_col.c2 = b.c2 and duplicate_col.c3 = b.c3))

關鍵詞標簽: 標題 標簽

聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-24 ,文章sql刪除重復數據的詳細方法建站知識主要講述標簽,標題,sql刪除重復數據的詳細方法建站知識網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_6710.html

我的IDC 網站建設技術SEOUC.COM
專注網站建設,SEO優化,小程序設計制作搭建開發定制網站等,數千家網站定制開發案例,網站推廣技術服務。
  • 5000+合作客服
  • 8年從業經驗
  • 150+覆蓋行業
  • 最新熱門源碼技術文章

    主站蜘蛛池模板: 中牟县| 友谊县| 应城市| 突泉县| 益阳市| 孝昌县| 双城市| 湟源县| 洛川县| 远安县| 茌平县| 西和县| 广灵县| 韶关市| 白沙| 闽清县| 江北区| 大港区| 云梦县| 丰都县| 丹凤县| 喀喇| 英吉沙县| 永新县| 淮安市| 宁远县| 祁阳县| 乐平市| 盱眙县| 杭锦旗| 东辽县| 玉田县| 柞水县| 疏附县| 玉溪市| 扶绥县| 临汾市| 阿克苏市| 额敏县| 田东县| 阿荣旗|