`

显示重复数据,重复数据只显示一条

    博客分类:
  • Data
阅读更多
显示重复记录,还是有重复时只显示一条


如:

--> --> (Roy)生成测试数据
 
if not object_id('Tempdb..#T') is null
    drop table #T
Go
Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2))
Insert #T
select 1,N'A',N'A1' union all
select 2,N'A',N'A2' union all
select 3,N'A',N'A3' union all
select 4,N'B',N'B1' union all
select 5,N'B',N'B2'
Go


--I、Name相同ID最小的记录(推荐用1,2,3),方法3在SQl05时,效率高于1、2
方法1:
Select * from #T a where not exists(select 1 from #T where Name=a.Name and ID<a.ID)

方法2:
select a.* from #T a join (select min(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID

方法3:
select * from #T a where ID=(select min(ID) from #T where Name=a.Name)

方法4:
select a.* from #T a join #T b on a.Name=b.Name and a.ID>=b.ID group by a.ID,a.Name,a.Memo having count(1)=1 

方法5:
select * from #T a group by ID,Name,Memo having ID=(select min(ID)from #T where Name=a.Name)

方法6:
select * from #T a where (select count(1) from #T where Name=a.Name and ID<a.ID)=0

方法7:
select * from #T a where ID=(select top 1 ID from #T where Name=a.name order by ID)

方法8:
select * from #T a where ID!>all(select ID from #T where Name=a.Name)

方法9(注:ID为唯一时可用):
select * from #T a where ID in(select min(ID) from #T group by Name)

--SQL2005:

方法10:
select ID,Name,Memo from (select *,min(ID)over(partition by Name) as MinID from #T a)T where ID=MinID

方法11:

select ID,Name,Memo from (select *,row_number()over(partition by Name order by ID) as MinID from #T a)T where MinID=1

生成结果:
/*
ID          Name Memo
----------- ---- ----
1           A    A1
4           B    B1

 来源百度知道

分享到:
评论

相关推荐

    MySQL 查询重复内容只显示一条

    标题“MySQL 查询重复内容只显示一条”涉及到的是在MySQL数据库中如何处理重复数据的问题。在数据分析或数据存储过程中,有时我们需要找出并处理重复的记录,只保留一条作为代表。这通常可以通过聚合函数和分组来...

    删除数据库中重复的数据(只保留一条)

    在数据库管理过程中,经常会遇到需要清理数据的情况,其中一种常见需求就是删除数据库中的重复记录,同时确保每条数据的关键字段只保留一条记录。这种操作在维护数据一致性、提高查询效率等方面具有重要意义。根据...

    Oracle查询重复数据并删除,只保留一条记录.docx

    Oracle 查询重复数据并删除,只保留一条记录 Oracle 是一种关系型数据库管理系统,广泛应用于企业级数据库管理。然而,在实际应用中,数据重复问题经常会出现,例如在资源目录在线编目的资源项子表中存在多条重发...

    oracle 查询重复数据

    在IT行业的数据库管理中,处理重复数据是一项常见且重要的任务,尤其在大型数据库如Oracle中。本文将深入探讨如何在Oracle数据库中查询重复数据,理解SQL语句背后的逻辑,并掌握其实现方法。 ### Oracle查询重复...

    删除Access数据库中重复的数据

    创建一个“选择查询”,在查询设计视图中,选择那些可能包含重复数据的字段,并添加计算字段来检测重复。例如,你可以创建一个计算字段,公式为`[姓名] & [电子邮件] & [电话]`,然后对这个计算字段进行分组,如果有...

    oracel重复记录只保留一条

    oracel重复记录只保留一条,提供sql语句与存储过程2种处理方式

    MySQL根据某一个或者多个字段查找重复数据的sql语句

    sql 查出一张表中重复...2、查询出所有数据进行分组之后,和重复数据的重复次数的查询数据,先列下: select count(username) as '重复次数',username from xi group by username having count(*)&gt;1 order by userna

    MySQL 多表关联一对多查询实现取最新一条数据的方法示例

    多表关联一对多查询取最新的一条数据,数据出现重复 由于历史原因,表结构设计不合理;产品告诉我说需要导出客户信息数据,需要导出客户的 所属行业,纳税性质 数据;但是这两个字段却在订单表里面,每次客户下单...

    sqlserver中重复数据值只取一条的sql语句

    当数据库表中的某些列有重复的值时,我们可能需要仅选取其中的一条记录,例如,选择每组重复数据的第一条或者最后一条。题目中提到的SQL语句就是解决这类问题的一个示例。 首先,我们创建一个名为`TestData`的数据...

    Oracle删除表中的重复数据

    通过`ROWNUM`函数和子查询的方式,进一步保证了即使有多条记录在上述列上完全相同,也只会有一条被插入到临时表中。 3. **删除原表并重命名临时表**:最后,通过`DROP TABLE tlinkman;`和`ALTER TABLE tlinkman2 ...

    删除表中重复数据sql语句

    - **保留第一条重复记录** ```sql SELECT identity(int, 1, 1) AS autoID, * INTO #Tmp FROM table_Name; SELECT MIN(autoID) AS autoID INTO #Tmp2 FROM #Tmp GROUP BY Name, autoID; SELECT * FROM #Tmp ...

    sqlServer删除重复数据

    这种方法可以删除所有重复的记录,只保留一条记录。 部分关键字段重复的记录 部分关键字段重复的记录是指只有部分字段重复,而其他字段不一定重复或都重复的情况。这种情况下,删除重复数据可以使用自动生成的...

    查询重复数据sql语句

    1. **重复数据**:指的是在数据表中存在多条完全相同的记录。 2. **唯一性**:为了确保数据的准确性,通常会设置某些字段为唯一,例如主键。 3. **SQL语句**:结构化查询语言(Structured Query Language),用于...

    如何删除表中重复数据

    ### 如何删除表中重复数据 在数据库管理与维护的过程中,经常会遇到表中存在重复记录的问题,这不仅会造成数据冗余、浪费存储空间,还可能导致数据分析结果失真。因此,了解如何有效地删除表中的重复数据是一项重要...

    解决Oracle删除重复数据只留一条的方法详解

    查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group by Id having count(Id) &gt; 1)2、删除表中多余的重复记录,...

    匹配重复数据对应的全部值

    在提供的“查找重复数据显示全部对应值.xlsm”文件中,已经包含了实现这一功能的完整宏代码。打开文件后,用户可以按照指示运行宏,或者查看宏代码了解其工作原理。这样的工具对于数据分析师、市场研究人员或任何...

    sql+如何去重复数据,数据库去重复数据

    使用`ROW_NUMBER()`函数去除基于`employee_id`和`order_date`的重复记录,并保留每组中的第一条记录: ```sql WITH cte AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY employee_id, order_date ORDER BY ...

    ListView快速显示100万条数据用时1秒

    1. 数据分页加载(Lazy Loading):而不是一次性加载所有数据,我们可以实现滚动监听,只在用户滚动到列表的边缘时才加载下一部分数据。这样可以显著减少内存消耗和初始化时间。 2. 数据缓存:利用内存缓存(例如...

    ORACLE去除重复数据方法

    - `SELECT * FROM cte WHERE rn = 1`:这一行代码用于选择每个分组中的第一条记录,即行号为1的记录。 #### 总结 本文介绍了两种在Oracle数据库中去除重复数据的方法:一是通过子查询实现,二是利用窗口函数`ROW_...

    完整版组合框、列表框去重复数据妙法.rar

    "完整版组合框、列表框去重复数据妙法"针对的就是这个问题,旨在提供一种高效且优雅的解决方案,确保这些控件中的数据显示唯一。 组合框和列表框的数据通常来源于数据库、数组或集合等数据结构。去重的方法多种多样...

Global site tag (gtag.js) - Google Analytics