
在要删除的有重复数据中存在几种情况:
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 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
参考资料:
数据库中不可能有完全一样的两行,因为那没有意义
我猜你说的是
有两行数据,他们的某一个字段相同
给你找个例子
select
distinct
into
#table_name
from
table_name
delete
from
table_name
select
into
table_name
from
#table_name
drop
table
#table_name
与此相关的是“select
into”选项,可以在数据库属性
对话框中,勾起来此项,或者在Query
Analyzer中执行
execute
sp_dboption
@#db_name@#,@#select
into@#,@#true@#
开启。默认值是关闭的。
在T1表新增一列自增列,ID,然后用下面的语句 select from T1 as a where ID=(select min(ID) from T1 where 姓名=a姓名 and 时间=a时间) 上面这句可以查出所有不重复的记录,通过这个,你就可以删除了 delete from T1 a where ID not in (select min(ID) from T1 where 姓名=a姓名 and 时间=a时间) 执行删除 *** 作之前请备份数据库,防止误 *** 作!
delete from ceshi where id not in
(select min(id) from ceshi group by wenben)
给你解释下,括号里那些,是相同文本的只取最小的id
外边那句就是删除文本相同,并且id不是最小的其他数据
当然了,那个min你可以给换成max保留最大的id,不知这样你懂不
以上就是关于SQL Server中怎样可以从SELECT语句的结果集中删除重复行全部的内容,包括:SQL Server中怎样可以从SELECT语句的结果集中删除重复行、sql 查询删除重复行、紧急求助!! SQL 数据库表中,,删除多余的重复行,留一行即可拜托各位了 3Q等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)