SQL Server 数据库查找重复记录的几种方法

http://www.hanyu123.cn/html/c61/6790.html

一、查某一列(或多列)的重复值。(只可以查出重复记录的值,不能查出整个记录的信息)

例如:查找stuid,stuname重复的记录:

  1. select stuid,stuname from stuinfo
  2. group by stuid,stuname
  3. having(count(*))>1

二、查某一列有重复值的记录。(此方法查出的是所有重复的记录,如果有两条记录重复的,就查出两条)

例如:查找stuid重复的记录:

  1. select * from stuinfo
  2. where stuid in (
  3. select stuid from stuinfo
  4. group by stuid
  5. having(count(*))>1
  6. )

三、查某一列有重复值的记录。(只显示多余的记录,也就是说如果有三条记录重复的,就显示两条)

前提:需有一个不重复的列,此示例为recno。例如:查找stuid重复的记录:

  1. select * from stuinfo s1
  2. where recno not in (
  3. select max(recno) from stuinfo s2
  4. where s1.stuid=s2.stuid
时间: 2024-10-07 15:23:04

SQL Server 数据库查找重复记录的几种方法的相关文章

oracle中查找和删除重复记录的几种方法总结

平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 下面总结一下几种查找和删除重复记录的方法(以表CZ为例): 表CZ的结构如下: 1 SQL> desc cz 2 Name Null? Type 3 ------------------------------------------------------------------- 4 C1 NUMBER(10) 5 C10 NUMBER(5) 6 C20 VARC

oracle__删除重复记录__三种方法及总结(转载百度文库)

http://wenku.baidu.com/link?url=RIENeGUK4sjxe21_RBYLYHR9tbUUCmOZQRR0mIjldXLYwRAt4khDtLQD9dFyd3rz3s_HWLvG2oErTw8sJUb1R2QLQqSZaBO3xLA8tu2qd9q --方法1:rowid --显示重复的行 select * from persons p1 where rowid<> (select max(rowid) from persons p2 where p1.pid=p

Sql Server数据库由于未知原因丢失的恢复方法

故障描述: 5块2T硬盘组建RAID5,划分LUN供windows服务器使用.在windows服务器内装有Sql Server2008数据库.存储空间内共有三个逻辑分区,大小分别为500G.800G.2.3T.数据库文件丢失,主要涉及五个数据库,表个数约为6000个左右.丢失原因未知,且不能确定数据存储位置.三个数据库的大小分别为8G.15G.20G.在文件丢失后服务器仍处于开机状态,但并未写入大量数据. 初检流程: 1.使用RAID信息及内部数据块信息重组RAID.重组RAID2.提取LUN内

SQL Server 数据库没有有效所有者的三种解决办法

问题:     开发的过程中,操作系统出了问题,决定重装系统.但是没有将SQL Server中的数据库文件分离出来,直接将系统格了.在新系统数据库中附加了数据库文件,一切还算正常,但当打开数据库关系图的时候出现了问题,如下图所示: 解决办法:(三种) 1.右键你的数据库名→属性→文件→所有者→sa;(该方法是从网上找到的,可能不成功) 2.设置兼容级别为90(2005为90,2000为80) (1)代码: USE [master] GO EXEC dbo.sp_dbcmptlevel @dbna

SQL Server 查看备份集元数据的 4 种方法。

方法 1. restore labelonly 方法 2. restore headeronly 方法 3. restore filelistonly 方法 4. restore verifyonly -----------------------------------------------------------------------------------------------------------------------------------------------------

SQL Server 查看空间使用情况的 5 种方法

解决方法: 方法 1.sp_spaceused 方法 2.dbcc sqlperf 方法 3.dbcc showfilestats 方法 4.dbcc showcontig 方法 5.sys.dm_db_partiton_stats -------------------------------------------------------------------------------------------------------------------------------------

oracel 查询删除重复记录的几种方法

建表语句CREATE TABLE Persons(PersonID int,           LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255)); insert into Persons values(1,'a','aa','aaa','aaaa');insert into Persons values(1,'a','aa','aaa','aaaa');insert into

SQL SERVER 如何删除重复记录

 先创建表 create table cat  (catId int , catName varchar(10)) 添加数据 insert into cat values(1,aa) 重复添加   select distinct * into temp from cat delete from cat insert into cat from temp drop table temp

自己动手丰衣足食,夜谈MySQL数据库去除重复记录最快的方法

mysql数据库重复插入了一些数据,想删除保留一条,查找了很多方案,类似这种以及这种的 初试了一下,感觉可能达到效果,但是速度太慢了,几十上百条数据还可以,几十上百万条,mysql.exe 进程基本上就跑满cpu了,半天出不来结果.大家都是程序员,就该有程序员的样子,不能完全依赖于sql语句,可以写个小工具变通下.思路如下:单字段重复的时候,就写个工具查询 这个字段,附带记录这个字段的主键,然后请看代码,我这边是zblog的数据库,手动插入了很多博文数据,重复了一些.批量导入代码 var dat