col2重复时,col1、col3数据不一样,要怎样取舍?
解决方案 »
- 如何以SQL方式得到如下形式的结果(续前,附测试数据).
- 命名管道: \\.\pipe\sql\query ,这个设置是什么意思呢?请大家说说
- 关于SQL Server文件组,基础问题?
- SQL如何使用delete 刪除指定行數的記錄呢
- .....请有经验的人看看....
- 将EXcel表导入到数据库的问题,快纠结死了,求大神帮助。。。。
- SQL查询到的部分数据导出为EXCEL
- sql 查询问题
- 请问,如何把access数据库(mdb)转换成sql数据库以及把此数据库导入到outlook(急)
- VC++、SDK或MFC编程
- 数据库插入语句?关于日期的
- SQL Server 2000怎样设置才能不区分字段名称的大小写?急!
蚂蚁的:去除重复值
如果有ID字段,就是具有唯一性的字段delect table where id not in ( select max(id) from table group by col1,col2,col3...
)
group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。2,如果是判断所有字段也可以这样
select * into #aa from table group by id1,id2,....
delete table
insert into table
select * from #aa3,没有ID的情况select identity(int,1,1) as id,* into #temp from tabel
delect # where id not in (
select max(id) from # group by col1,col2,col3...)
delect table
inset into table(...)
select ..... from #temp
col1+','+col2+','...col5 联合主键
select * from table where col1+','+col2+','...col5 in ( select max(col1+','+col2+','...col5) from table
where having count(*)>1
group by col1,col2,col3,col4
)
group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。2,
select identity(int,1,1) as id,* into #temp from tabel
select * from #temp where id in (
select max(id) from #emp where having count(*)>1 group by col1,col2,col3...)
alter table 你的表 add id int identity(1,1)
go--删除重复的
delete 你的表
from 你的表 a where id<>(select min(id) from 你的表 where col2=a.col2)
go--完成后,删除标识列
alter table 你的表 drop column id