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

       两年多没有碰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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值