刪除重復(fù)記錄,并且剩下一條
更新時(shí)間:2009年04月15日 21:28:00 作者:
所謂的重復(fù)記錄就是某列數(shù)據(jù)有重復(fù)的,但是在實(shí)際的過(guò)程中,有可能您的需求是一列有重復(fù),也可能兩列有重復(fù)..根據(jù)實(shí)際情況,所得到的重復(fù)記錄是有所不同的
我們可以通過(guò)下述方法刪除重復(fù)記錄:
例:表名:dbo.品種描述$,字段包括:ID_PK,品種名稱,性狀標(biāo)準(zhǔn)編號(hào),代碼,首先創(chuàng)建一個(gè)和原表結(jié)構(gòu)一樣的表:
select * into tmpA from dbo.品種描述$ where 1=2--創(chuàng)建完畢
在數(shù)據(jù)表中,品種名稱,性狀標(biāo)準(zhǔn)編號(hào)這兩個(gè)字段不能有重復(fù)值,執(zhí)行下述腳本:
declare @VarietyName nvarchar(255),
@StdCharCode nvarchar(255),
@iCount int
set @iCount=0;
declare insert_distinct_cursor cursor for
select 品種名稱,性狀標(biāo)準(zhǔn)編號(hào) from dbo.品種描述$ group by 品種名稱,性狀標(biāo)準(zhǔn)編號(hào)
open insert_distinct_cursor
FETCH NEXT FROM insert_distinct_cursor INTO @VarietyName,@StdCharCode
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
insert into dbo.tmpA (品種名稱,性狀標(biāo)準(zhǔn)編號(hào),代碼) select top 1 品種名稱,性狀標(biāo)準(zhǔn)編號(hào),代碼 from dbo.品種描述$ where 品種名稱=@VarietyName and 性狀標(biāo)準(zhǔn)編號(hào)=@StdCharCode;
set @iCount=@iCount+1;
END
FETCH NEXT FROM insert_distinct_cursor INTO @VarietyName,@StdCharCode
END
CLOSE insert_distinct_cursor
DEALLOCATE insert_distinct_cursor
print @iCount
例:表名:dbo.品種描述$,字段包括:ID_PK,品種名稱,性狀標(biāo)準(zhǔn)編號(hào),代碼,首先創(chuàng)建一個(gè)和原表結(jié)構(gòu)一樣的表:
復(fù)制代碼 代碼如下:
select * into tmpA from dbo.品種描述$ where 1=2--創(chuàng)建完畢
在數(shù)據(jù)表中,品種名稱,性狀標(biāo)準(zhǔn)編號(hào)這兩個(gè)字段不能有重復(fù)值,執(zhí)行下述腳本:
declare @VarietyName nvarchar(255),
@StdCharCode nvarchar(255),
@iCount int
set @iCount=0;
declare insert_distinct_cursor cursor for
select 品種名稱,性狀標(biāo)準(zhǔn)編號(hào) from dbo.品種描述$ group by 品種名稱,性狀標(biāo)準(zhǔn)編號(hào)
open insert_distinct_cursor
FETCH NEXT FROM insert_distinct_cursor INTO @VarietyName,@StdCharCode
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
insert into dbo.tmpA (品種名稱,性狀標(biāo)準(zhǔn)編號(hào),代碼) select top 1 品種名稱,性狀標(biāo)準(zhǔn)編號(hào),代碼 from dbo.品種描述$ where 品種名稱=@VarietyName and 性狀標(biāo)準(zhǔn)編號(hào)=@StdCharCode;
set @iCount=@iCount+1;
END
FETCH NEXT FROM insert_distinct_cursor INTO @VarietyName,@StdCharCode
END
CLOSE insert_distinct_cursor
DEALLOCATE insert_distinct_cursor
print @iCount
相關(guān)文章
sql?server使用nest?typeorm實(shí)現(xiàn)索引的方式
本文通過(guò)示例演示了如何使用TypeORM庫(kù)在SQL?Server中創(chuàng)建不同類型的索引,分為普通索引,唯一索引,復(fù)合索引和空間索引,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-03-03
清空所有表中的數(shù)據(jù)的存儲(chǔ)過(guò)程
清空所有表中的數(shù)據(jù)的sql語(yǔ)句,需要的朋友可以參考下,利用了存儲(chǔ)過(guò)程。2010-06-06
SQL Server創(chuàng)建用戶只能訪問(wèn)指定數(shù)據(jù)庫(kù)和視圖的操作步驟
本文介紹了如何在SQLServer中創(chuàng)建用戶并限定其訪問(wèn)權(quán)限,包括創(chuàng)建用戶、設(shè)置用戶映射、設(shè)置只能訪問(wèn)指定的數(shù)據(jù)表或視圖、給指定表或視圖賦予具體權(quán)限和檢查權(quán)限等步驟,這種設(shè)置可以防止用戶訪問(wèn)到過(guò)多不必要的過(guò)程表和過(guò)程視圖,提高數(shù)據(jù)安全性2024-10-10
sql?server中的觸發(fā)器用法實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于sql?server中觸發(fā)器用法的相關(guān)資料,SQL Server觸發(fā)器是一種特殊類型的存儲(chǔ)過(guò)程,它們?cè)跀?shù)據(jù)庫(kù)中的表上自動(dòng)執(zhí)行,需要的朋友可以參考下2024-03-03
在sqlserver數(shù)據(jù)庫(kù)中導(dǎo)入Excel數(shù)據(jù)的全過(guò)程
在SQL Server中導(dǎo)入Excel數(shù)據(jù)可以通過(guò)使用導(dǎo)入/導(dǎo)出向?qū)?lái)完成,下面這篇文章主要給大家介紹了關(guān)于在sqlserver數(shù)據(jù)庫(kù)中導(dǎo)入Excel數(shù)據(jù)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
SQL Server 高性能寫(xiě)入的一些經(jīng)驗(yàn)總結(jié)
本篇博文將針對(duì)一些常用的數(shù)據(jù)庫(kù)性能調(diào)休方法進(jìn)行介紹,而且,為了編寫(xiě)高效的SQL代碼,我們需要掌握一些基本代碼優(yōu)化的技巧,所以,我們將從一些基本優(yōu)化技巧進(jìn)行介紹2012-08-08

