sqlserver 2008中的表,id列是不重复的主键,除id列,其他列出现重复数据,怎么去除重复???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 2008中的表,id列是不重复的主键,除id列,其他列出现重复数据,怎么去除重复???相关的知识,希望对你有一定的参考价值。

id name sex age
1 小马 男 23
2 小张 女 22
3 小韩 男 23
4 小马 男 23
5 小马 男 23
6 小韩 男 23
7 小马 男 23

怎么能一个人只剩一行?而且不改变前面的id号

你这题目问的很奇怪。如果你想分组就用group by 如果你想去掉重复项就用distinct 但是你要保留ID,去掉重复项。不理解是什么意思。
1 小马 男 23
4 小马 男 23
7 小马 男 23
对于系统来说这根本就不是同一个数据,除非你忽略ID,这样可以distinct。就像一个班级有3个同名的同学一样。学号不同,就表示是不同的人。除非你忽略学号,这样有3个小马,就可以认为是一条记录重复了3次。
参考技术A select * from table a where exists
(select 1 from table group by name,sex,age having min(id)=a.id)追问

报错!HAVING 子句中的列 'a.Id' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

追答

表别名a是外面的,里面的不用加表别名,或者用其他表别名比如b
或者
select * from table a where id in
((select min(id) as id from table group by name,sex,age)

本回答被提问者采纳

sqlserver 如何修改存储过程脚本

参考技术A 使用alter proc 就可以修改脚本了
或者在SQL Server Management Studio 中右键你要修改的存储过程,在菜单中点击修改存储过程。本回答被提问者和网友采纳

以上是关于sqlserver 2008中的表,id列是不重复的主键,除id列,其他列出现重复数据,怎么去除重复???的主要内容,如果未能解决你的问题,请参考以下文章

高手请告诉我:在sql server中怎样按照指定的字段去重?

MS SQL 2008 设置主键 该列值为啥还能重复

如何修改sql server 2000 里的表中的内容?

求教在sqlserver2008中的表中怎么添加一列自增的列?

在 SQL Server 2008 中更改行

如何在 Sql Server 2008 中设置唯一约束 [重复]