您的位置:首页 > 数据库

SQL Server 文档整理 - 4 如何找出重复数据以及怎样消除重复数据

2006-07-08 17:24 531 查看
两年多没有碰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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐