1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

代码如下:
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > )

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

代码如下:

delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > )
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId)>)

3、查找表中多余的重复记录(多个字段) 

代码如下:

select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > )

上面的语句会出现错误:

消息 102,级别 15,状态 1,第 2 行
',' 附近有语法错误。
消息 156,级别 15,状态 1,第 3 行
关键字 'and' 附近有语法错误。

改成如下

select * from dbo.Organization a
where a.ORG_CODEA in (select ORG_CODEA from Organization group by ORG_CODEA,ORG_CLASS having count(*) > )
and a.ORG_CLASS in (select ORG_CLASS from Organization group by ORG_CODEA,ORG_CLASS having count(*) > )
and ORG_ID not in (select min(ORG_ID) from Organization group by ORG_CODEA,ORG_CLASS having count(*)>)--不包含ORG_ID最小的记录

select *  from dbo.Organization a
where exists (select from (select ORG_CODEA,ORG_CLASS from Organization group by ORG_CODEA,ORG_CLASS having count(*) > ) s
where s.ORG_CODEA = a.ORG_CODEA
and s.ORG_CLASS = a.ORG_CLASS)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

代码如下:

delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > )
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>)

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录

代码如下:

select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > )
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>)

(二)

比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;

代码如下:

Select Name,Count(*) From A Group By Name Having Count(*) > 

如果还查性别也相同大则如下:

代码如下:

Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 

(三)

方法一

 代码如下:

declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >;
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=
begin
select @max = @max -
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount

方法二

  有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重

复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

  1、对于第一种重复,比较容易解决,使用

代码如下:
select distinct * from
tableName

  就可以得到无重复记录的结果集。

  如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

代码如下:
select distinct * into #Tmp from
tableName
drop table tableName
select * into tableName from #Tmp
drop
table #Tmp

  发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

  2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下

  假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集

代码如下:
select identity(int,1,1) as autoID, * into
#Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group
by Name,autoID
select * from #Tmp where autoID in(select autoID from
#tmp2)

  最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)

(四)查询重复

代码如下:
select * from tablename where id in
(
select id from tablename
group by id
having count(id) >
1
)
 
select * from dbo.Organization a
where (a.ORG_CODEA+a.ORG_CLASS) in (select ORG_CODEA+ORG_CLASS from Organization group by ORG_CODEA,ORG_CLASS having count(*) > )
and ORG_ID not in (select min(ORG_ID) from Organization group by ORG_CODEA,ORG_CLASS having count(*)>) select ORG_CODEA,ORG_CLASS
from Organization
group by ORG_CODEA,ORG_CLASS
having count(*)>

SQL重复记录查询的几种方法(转)的更多相关文章

  1. SQL重复记录查询的几种方法

    http://www.jb51.net/article/34820.htm \ 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 复制代码 代码如下: select * f ...

  2. sql重复记录查询

    1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select  peopleId  fro ...

  3. SQL重复记录查询(转载)

     1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people )  例二:  select * from testtable  where ...

  4. 收藏:SQL重复记录查询 .

    来自:http://blog.csdn.net/chinmo/article/details/2184020 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select ...

  5. SQL-重复记录查询的几种方法

    1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from ...

  6. SQL重复记录查询-count与group by having结合查询重复记录

    查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select  peopleId  from  p ...

  7. 【SQL】Oracle分页查询的三种方法

    [SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 ? 1 2 3 4 5 6 7 8 9 10 11 [sql] select * from t_user t whe ...

  8. **SQL某一表中重复某一字段重复记录查询与处理

    sql某一表中重复某一字段重复记录查询与处理   1.查询出重复记录  select 重复记录字段 form  数据表 group by houseno having count(重复记录字段)> ...

  9. mysql insert插入时实现如果数据表中主键重复则更新,没有重复则插入的四种方法

    [CSDN下载] Powerdesigner 设计主键code不能重复等问题 [CSDN博客] Oracle中用一个序列给两个表创建主键自增功能的后果 [CSDN博客] MySQL自增主键删除后重复问 ...

随机推荐

  1. css 文本域textarea显示成label标签

    <html> <head>     <title>textarea显示为label</title> <style type="text/ ...

  2. 一个cocos2d-x的项目

    前几天完成了一个cocos2d-x的项目,放在git上: https://github.com/gittor/Jigsaw 采用cocos的版本是3.7.1. 项目是一个拼图的游戏,市面上的拼图类游戏 ...

  3. OFBiz中根据店铺获取产品可用库存的方法

    1.[ProductStoreFacility]获得店铺绑定的仓库列表 2.遍历仓库,调用[getInventoryAvailableByFacility],传入[facilityId : facil ...

  4. 转载:Struts2+Jquery实现ajax并返回json类型数据

    摘要: 主要实现步骤如下: 1.JSP页面使用脚本代码执行ajax请求 2.Action中查询出需要返回的数据,并转换为json类型模式数据 3.配置struts.xml文件 4.页面脚本接受并处理数 ...

  5. 转:PHP变量作用域(花括号、global、闭包)

    花括号 很多语言都以花括号作为作用域界限,PHP中只有函数的花括号才构成新的作用域. 01 <?php 02 if (True) { 03     $a = 'var a'; 04 } 05   ...

  6. centos 6.4 更新源地址

    执行如下命令: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.old vim /etc/yum.repo ...

  7. opencart修改后台文件夹名

    在使用opencart进行二次开发时,若需要修改后台目录的文件夹名是可以操作的.具体步骤如下: 1.将网站后台文件夹名字改成opencartadmin 2.在该文件夹下找到config.php文件如图 ...

  8. mybatis和hibernate对比

    Hibernate是一个数据库表和java对象之间完全映射的框架,java开发人员直接对java对象操作,而不对数据库表进行操作: Mybatis是对SQL语句和java对象进行映射,仍需要开发人员编 ...

  9. unix c 07

    进程的结束函数 (exit._Exit)    exit 并不是立即退出,退出前执行 用atexit/on_exit函数 注册的函数.    exit(int status)中的status可以用 w ...

  10. 7款纯CSS3实现的炫酷动画应用|慕课网只学有用的!

    关于我们 | 时尚廊 ♦ 时尚廊,中国大陆地区首家以"Lounge"为概念的艺文空间 ♦  7款纯CSS3实现的炫酷动画应用|慕课网只学有用的! 7款纯CSS3实现的炫酷动画应用