sql查询语句去除重复列(行)
2017-01-10 19:32
274 查看
分享 <sql查询语句去除重复列(行)>
最近做一个数据库的数据导入功能,发现联合主键约束导致不能导入,原因是源表中有重复数据,但是源表中又没有主键,很是麻烦。经过努力终于解决了,现在就来和大家分享一下,有更好的办法的可以相互交流。
有重复数据主要有一下几种情况:
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 [去除重复的字段名列表,....])
drop table newtable
有更好的方法的欢迎大家相互交流.........
最近做一个数据库的数据导入功能,发现联合主键约束导致不能导入,原因是源表中有重复数据,但是源表中又没有主键,很是麻烦。经过努力终于解决了,现在就来和大家分享一下,有更好的办法的可以相互交流。
有重复数据主要有一下几种情况:
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 [去除重复的字段名列表,....])
drop table newtable
有更好的方法的欢迎大家相互交流.........
相关文章推荐
- SQL查询语句去除重复行
- sql查询语句去除重复列(行)
- mysql去除重复查询的SQL语句基本思路
- sql语句去除重复记录(多表连接的查询)
- sql查询去除重复值语句
- 转载:如何写个SQL语句查询一个字段里是否有重复记录如果有只读取其中一条记录
- 关于SQL语句中去除重复记录方法
- 去除重复数据的SQL语句
- 表中查询重复的数据,如何通过sql语句查询?
- Sql查询语句过滤重复的数据
- 查询和删除表中重复数据sql语句
- sql语句之查询与删除重复数据
- 去除重复行或列的一些sql语句
- sql语句查询重复值
- sql 单表distinct/多表group by查询去除重复记录
- [MSSQL]SQL查询去除重复记录
- 使用SQL语句查询表中重复记录并删除
- Oracle 查询并删除重复记录的SQL语句
- sql查询单表中重复数据的语句
- SQL语句:一种连接本表2个查询结果的复杂sql语句、一种查找一列有重复值的语句