`
cherryQQ
  • 浏览: 1137121 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

查询表中相同数据的sql语句

SQL 
阅读更多
1、查询表中重复数据。select * from people
where peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId  in (select  peopleId  from people  group  by  peopleId   having  count(peopleId) > 1)
and rowid not in (select min(rowid) from  people  group by peopleId  having count(peopleId )>1)

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

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

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)


5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) From A Group By Name Having Count(*) > 1

如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1


(三)
方法一

declare @max integer,@id integer

declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1

open cur_rows

fetch cur_rows into @id,@max

while @@fetch_status=0

begin

select @max = @max -1

set rowcount @max

delete from 表名 where 主字段 = @id

fetch cur_rows into @id,@max

end

close cur_rows

set rowcount 0

方法二

"重复记录"有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如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)

0 0 0
分享到:
评论

相关推荐

    删除表中重复数据sql语句

    1. **查询表中重复数据** - **单字段重复数据查询** ```sql SELECT * FROM people WHERE peopleId IN ( SELECT peopleId FROM people GROUP BY peopleId HAVING COUNT(peopleId) > 1 ) ``` - **多字段...

    查询和删除表中重复数据sql语句

    ### 查询表中重复数据 #### 单字段重复数据查询 ```sql SELECT * FROM people WHERE peopleId IN (SELECT peopleId FROM people GROUP BY peopleId HAVING COUNT(peopleId) > 1); ``` 这条SQL语句用于查找`people`...

    SQLServer表数据转化为sql语句(表数据搬运,一键快捷导出为insert语句,方便导入到其它库)

    功能: 根据表名、where条件,生成导出数据的SQL语句。(包含insert语句。结果可一键执行,利于数据导出、导入) 参数: @tableName nvarchar(100) --表名 ,@sqlWhere nvarchar(500) --where条件,如'a=''123'' '(传...

    查询重复数据sql语句

    本文将详细介绍如何使用SQL语句来查询表中的重复数据,并基于提供的SQL示例进行深入分析。 ### SQL查询重复数据的核心概念 在开始之前,我们需要了解几个关键的概念: 1. **重复数据**:指的是在数据表中存在多条...

    sql语句万能生成器,sql语句,sql语句生成

    SQL语句是数据库操作的核心,它用于查询、插入、更新和删除数据,是任何数据库管理系统中的基础工具。在IT行业中,编写SQL语句是一项必备技能,但手动编写和调试SQL语句可能会耗费大量时间和精力,尤其在处理复杂...

    arcgis中的sql语句

    - **VBE环境下ADO方式执行SQL**:在Visual Basic for Applications (VBA)环境中,使用ActiveX Data Objects (ADO)技术可以实现SQL语句的自动化执行,适用于大规模数据处理和脚本编程。 综上所述,SQL在ArcGIS中的...

    使用Oracle查询并删除重复记录的SQL语句

    例如,假设我们有一个名为people的表,其中包含一个名为peopleId的字段,我们可以使用以下SQL语句来查找表中多余的重复记录: ```sql select * from people where peopleId in (select peopleId from people group ...

    用SQL语句j查SQLServer的表结构

    用SQL语句j查SQLServer的表结构 用SQL语句j查SQLServer的表结构

    删除表中重复数据sql语句.pdf

    本文将详细讲解如何使用SQL语句来查询和删除表中的重复数据。 首先,我们来看如何**查询重复数据**。假设我们有一个名为`people`的表,其中`peopleId`字段存在重复。查询重复`peopleId`的方法如下: ```sql SELECT...

    XML查询语句转换成SQL语句的实现.pdf

    XML 查询语句转换成 SQL 语句的实现 本文主要讨论将 XML 查询语句转换成 SQL 语句的实现。XML 已经成为 Internet 上数据交换的事实标准,特别是在 Web 数据挖掘技术中,对数据源的结构化需求导致人们对 XML 文档的...

    Oracle Sql语句转换成Mysql Sql语句

    OracleSqlConvert4MysqlSqlTool.java这个源码工具,根据描述,应该是实现了自动读取Oracle SQL语句,分析其结构,并根据MySQL的语法规则进行转换,然后将转换后的SQL语句保存到指定的目标文件中。这个工具简化了手动...

    SQL_server将表中的记录转换成Insert(插入)SQL语句

    SQL_server将表中的记录转换成Insert(插入)SQL语句,SQL_server将表中的记录转换成Insert(插入)SQL语句

    通过解析sql语句获取表血缘关系项目

    在IT行业中,数据库管理和数据...总结来说,"通过解析SQL语句获取表血缘关系项目"是一个关键的数据管理实践,它依赖于对SQL的深入理解和合适的工具,以揭示数据库中的数据流动路径,从而支持更高效、更合规的数据操作。

    sql语句学习 多表连接查询

    自己学习的笔记--查询计算机系CS男学生学号、姓名和考试成绩 SELECT A.Sno,A.Sname,B.degree FROM student A,sc B WHERE A.Sdept = 'CS' AND A.Ssex = '男' AND A.Sno = B.sno SELECT A.Sno,A.Sname,B.degree FROM ...

    查询数据库中有数据的表SQL语句

    本文将深入探讨一个特定的SQL查询语句,旨在找出数据库中包含数据的表,即“查询数据库中有数据的表SQL语句”。此查询不仅对数据库管理员(DBA)至关重要,对于任何需要理解和优化数据库结构、性能的IT专业人士也...

    SQL语句的多表查询

    ### SQL语句中的多表查询 在数据库管理与开发中,单个数据表往往难以满足复杂的数据需求。因此,多表查询成为了一种常见的技术手段,尤其在ODBC(Open Database Connectivity,开放数据库互连)编程中尤为重要。...

    SQLServer中复杂sql语句查询

    综上所述,掌握SQL Server中的复杂SQL语句查询涉及理解多表查询、索引设计、触发器的应用和存储过程的编写,以及查询优化技巧。只有深入理解并灵活运用这些知识,才能在实际工作中有效地管理和优化数据库查询,提高...

    泛微系统SQL语句大全

    本资源集合了泛微系统中与SQL Server数据库交互时常用的各种SQL语句,涵盖了组织架构、流程管理以及自定义需求等多个方面。以下是对这些SQL语句知识点的详细解释: 1. **组织架构相关SQL**: - 组织架构是企业信息...

    将access表数据批量转换成SQL语句的工具

    标题中的“将Access表数据批量转换成SQL语句的工具”指的是一个软件程序,它能够帮助用户将存储在Microsoft Access数据库中的数据表转换为SQL(Structured Query Language)语句。这种工具通常用于将数据迁移至其他...

    SQL语句与数据透视表结合使用入门

    1. **SQL预处理数据**:在创建数据透视表前,先使用SQL语句清洗和整理数据,例如去除重复项、合并表、计算新字段等。这一步可以确保数据透视表基于的数据源是准确且有效的。 2. **SQL生成临时表**:将复杂的SQL查询...

Global site tag (gtag.js) - Google Analytics