刪除重復(fù)記錄,并且剩下一條
更新時間:2009年04月15日 21:28:00 作者:
所謂的重復(fù)記錄就是某列數(shù)據(jù)有重復(fù)的,但是在實際的過程中,有可能您的需求是一列有重復(fù),也可能兩列有重復(fù)..根據(jù)實際情況,所得到的重復(fù)記錄是有所不同的
我們可以通過下述方法刪除重復(fù)記錄:
例:表名:dbo.品種描述$,字段包括:ID_PK,品種名稱,性狀標(biāo)準(zhǔn)編號,代碼,首先創(chuàng)建一個和原表結(jié)構(gòu)一樣的表:
select * into tmpA from dbo.品種描述$ where 1=2--創(chuàng)建完畢
在數(shù)據(jù)表中,品種名稱,性狀標(biāo)準(zhǔn)編號這兩個字段不能有重復(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)編號 from dbo.品種描述$ group by 品種名稱,性狀標(biāo)準(zhǔn)編號
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)編號,代碼) select top 1 品種名稱,性狀標(biāo)準(zhǔn)編號,代碼 from dbo.品種描述$ where 品種名稱=@VarietyName and 性狀標(biāo)準(zhǔn)編號=@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)編號,代碼,首先創(chuàng)建一個和原表結(jié)構(gòu)一樣的表:
復(fù)制代碼 代碼如下:
select * into tmpA from dbo.品種描述$ where 1=2--創(chuàng)建完畢
在數(shù)據(jù)表中,品種名稱,性狀標(biāo)準(zhǔn)編號這兩個字段不能有重復(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)編號 from dbo.品種描述$ group by 品種名稱,性狀標(biāo)準(zhǔn)編號
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)編號,代碼) select top 1 品種名稱,性狀標(biāo)準(zhǔn)編號,代碼 from dbo.品種描述$ where 品種名稱=@VarietyName and 性狀標(biāo)準(zhǔn)編號=@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實現(xiàn)將特定字符串拆分并進行插入操作的方法
這篇文章主要介紹了SQL Server實現(xiàn)將特定字符串拆分并進行插入操作的方法,涉及SQL Server的循環(huán)、遍歷、判定及插入等相關(guān)操作技巧,需要的朋友可以參考下2016-08-08SQL Server 索引結(jié)構(gòu)及其使用(二) 改善SQL語句
很多人不知道SQL語句在SQL SERVER中是如何執(zhí)行的,他們擔(dān)心自己所寫的SQL語句會被SQL SERVER誤解。2009-04-04在sqlserver數(shù)據(jù)庫中導(dǎo)入Excel數(shù)據(jù)的全過程
在SQL Server中導(dǎo)入Excel數(shù)據(jù)可以通過使用導(dǎo)入/導(dǎo)出向?qū)硗瓿?下面這篇文章主要給大家介紹了關(guān)于在sqlserver數(shù)據(jù)庫中導(dǎo)入Excel數(shù)據(jù)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01SQL?server數(shù)據(jù)庫declare和set用法技巧小結(jié)
這篇文章主要給大家介紹了關(guān)于SQL?server數(shù)據(jù)庫declare和set用法技巧的相關(guān)資料,在SQL Server中,DECLARE用于聲明變量和存儲過程中的參數(shù),文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08