在要删除的有重复数据中存在几种情况:
1.存在两条完全相同的纪录
这是最简单的一种情况,用关键字distinct就可以去掉。
example: select distinct * from table(表名) where (条件)
2.存在部分字段相同的纪录(有主键id即唯一键)
如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组
example:
select * from table where id in (select max(id) from table group by [去除重复的字段名列表,....])
3.没有唯一键ID
example:
select identity(int1,1) as id,* into newtable(临时表) from table
select * from newtable where id in (select max(id) from newtable group by [去除重复的字段名列表,....])
扩展资料:
SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。
Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
结果集中去除重复行可以使用函数【distinct】也可以使用分组语句【group by】
1、【distinct】使用示例:
select distinct userid,username from 表名2、分组语句【group by】使用示例:
select userid,username from 表名 group by userid,username1和2两个语句的select检索输出结果是一致的
参考资料:http://www.360doc.com/content/10/0408/13/536925_22087659.shtml
SQL Server中怎样可以从SELECT语句的结果集中删除重复行
1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉。example: select distinct * from table(表名) where (条件)2.存在部分字段相同的纪录(有主键id即唯一键)如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组 example:select * ...
SQL求助:相同数据剔出
使用 DISTINCT 消除重复项 DISTINCT 关键字可从 SELECT 语句的结果中除去重复的行。如果没有指定 DISTINCT,那么将返回所有行,包括重复的行。例如,如果在 titleauthor 中选择所有作者 ID 时未使用 DISTINCT,那么将会返回下列行(其中包括一些重复的行):USE pubs SELECT au_id FROM titleauthor 下面是...
sql中删除重复数据
select distinct * into #temp from tablename delete tablename go insert tablename select * from #temp Sqlclub go drop table #temp 以上就是SQL Server删除重复行的方法介绍。
sqlserver中union的用法
UNION操作默认会去除重复的记录。如果两个SELECT语句返回的结果中有重复的行,UNION会只保留唯一的行。如果需要包括重复行,可以使用UNION ALL。例如:sql SELECT column_name FROM table1 UNION ALL SELECT column_name FROM table2;使用UNION ALL时,返回的结果集会包含所有的行,包括重复的行。但要注意...
sql server 中如何删除多余重复行,只保留一行, 比如 id 重复相同的多条...
里面有一个distinct,就是消除重复行的,如果你是想看的时候,重复的只留一行,而不是删除里面的数据的话,那么就是写select distinct id from persons或者select id from persons group by id 如果你是想删除表里面的相同行,那么就是delete from persons where id not in(selelct id from persons ...
怎样去除sql server数据库中查询到的重复的记录
关键是在上面sql的where子句中select 重复记录字段 form 数据表 group by 重复记录字段 having count(重复记录字段)>1 修改为 select min(id) form 数据表 group by 重复记录字段 having count(重复记录字段)>1 这样就查询重复记录字段中ID最小值 那么上面的语句就是 select id,* from 数据...
sql server语法保留第一个删除重复
--根据字段id(唯一)删除重复的行,只保留最大id或最小id行,下面示例只保留id最小行DELETE FROM 表名 WHERE(id IN (SELECT a.id FROM 表名 a LEFT OUTER JOIN (SELECT 字段1, 字段2 FROM 表名 GROUP BY 字段1, 字段2 HAVING (COUNT(*) > 1)) AS b ON a.字段1= b.字段1 ...
在SELECT语句中,对查询结果进行排序的子句是什么?能消除重复行的关键字...
1、首先打开SQL Server Management管理工具,运用Select语句查询出要排序的数据,如下图所示。2、接下来我们直接运用Order By对数据中的ContactName字段进行排序,如下图所示,默认是升序。3、如果想按照降序的话,则需要在排序字段后面加上desc属性,如下图所示。4、接下来你也可以在order by后面加上两个...
如何使用sql语句在sqlserver中删除重复数据
(select 1 from (select col1 from t1 group by col1 having count(1)>1) t where t.col1=t1.col1);如果希望对于有重复的记录希望保留其中一条记录而不是全部删除,则可以运行下列语句,前提是数据表必须含有自增id列。delete from t1 where exists (select 1 from (select col1,max(id) ...
sql server 怎么删除表里重复数据
1、必须保证表中有主键或者唯一索引,或者某列数据不能重复。只有这样,才可能使用一句SQL来实现。否则只能考虑其它办法。下面的语句,假定BB列是不重复的,删除后保存BB列值最大的那条记录。delete from 表 where aa in (select aa from 表 group by aa having count(aa)> 1)and bb not in (...