两年多没有碰SQL Server 2000了,昨天整理电脑的时候发现了以前写的一些文档,今天就整理到博客上来吧。不然也对不起“彭建军的专栏”几个字了,呵呵。
很多时候,你的目的表中存在重复记录,恰好你不能容忍它们的存在?怎么找出它们?怎么消除它们?下面提供的一些方法或许对你有用……
/**
* 关于: MS SQL Server 2000 重复记录
* 作者:彭建军
* 测试环境:SQL Server 2000 SP4 + Windows XP Sp2
* 更新时间:2006-7-8 16:36
**/
--建立测试环境
USE PJJ
GO
IF EXISTS
(SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'U' AND NAME = 'T1')
DROP TABLE T1
GO
CREATE TABLE T1
(
Column1 INT,
Column2 CHAR(5),
Column3 VARCHAR(10)
)
GO
--插入数据
INSERT INTO T1
SELECT 1,'AAAAA','A+A+A+A+A' UNION ALL
SELECT 2,'BBBBB','B+B+B+B+B' UNION ALL
SELECT 3,'CCCCC','C+C+C+C+C' UNION ALL
SELECT 2,'BBBBB','B+B+B+B+B' UNION ALL
SELECT 3,'CCCCC','C+C+C+C+C'
GO
--查询
SELECT * FROM T1
SELECT DISTINCT * FROM T1
--删除重复数据方法
SELECT DISTINCT * INTO #T FROM T1
GO
TRUNCATE TABLE T1
GO
INSERT INTO T1
SELECT * FROM #T
GO
DROP TABLE #T
GO
--查询重复的记录
SELECT COUNT(*) AS '重复次数',Column1,Column2,Column3
FROM T1
GROUP BY Column1,Column2,Column3
HAVING COUNT(*)>1
--查询不重复的记录
SELECT COUNT(*) AS '重复次数',Column1,Column2,Column3
FROM T1
GROUP BY Column1,Column2,Column3
HAVING COUNT(*)<=1
--删除测试环境
DROP TABLE T1
GO