SQL 中两张表合并后,如何删除重复项?

select a.ID,a.QuestionCategoryName,a.EmpID,a.RegDate,b.Question,b.Answer from crm_QuestionCategory a left join dbo.crm_QAList b on a.ID=b.QuestionCategoryID where a.ID=2
只想要一条 “tour”的数据,怎么去除另外一条重复的?

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)注:rowid为oracle自带不用该.....
3、查找表中多余的重复记录(多个字段) select * from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) www.2cto.com 4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录delete from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录select * from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-30
如果你非要查询出你要查询的那些字段的话,不能去掉重复,因为你的一个ID对应了两个不同的Answer,在查询时就查出两条一样的了,不然去掉一条重复的,那你说去掉Answer为nice的那条 数据,还是cool的那条数据?如果你想要这样去掉的话直接加个条件Answer=''去掉的那条就可以了
第2个回答  2012-05-28
2张表结构如果完全一致
合并前可以使用union语句联合去重
select * from t1 union select * from t2
然后插入
第3个回答  2012-05-30
select a.ID,a.QuestionCategoryName,a.EmpID,a.RegDate,b.Question,max(b.Answer)
from crm_QuestionCategory a left join dbo.crm_QAList b on a.ID=b.QuestionCategoryID where a.ID=2
group by a.ID,a.QuestionCategoryName,a.EmpID,a.RegDate,b.Question本回答被提问者采纳

SQL 中两张表合并后,如何删除重复项?
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录d...

sql中如何删除一个表中重复的记录?
sql中删除一个表中的重复记录可以采用如下步骤:1、把a_dist表的记录用distinct去重,结果放到临时表中。select distinct * into #temp from a_dist;2、把a_dist表的记录全部删除。delete from a_dist;3、把临时表中的数据信息导进到a_dist表中,并删除临时表。insert into a_dist select *...

SQL多个字段如何去重
使用关键字:distinct 即可去重。

SQL语句怎样查询并删除单个字段下的所有重复值, 重复的记录只保留一个...
需要一个主键 id 如果是要删除是姓名重复的话,试试以下代码 delete ta where id not in ( select max(id) from group by nch )如果要显示不重复项的数据 select * from ta where id in ( select max(id) from group by 姓名 )如果 nch 这...

面试必备:如何实现SQL语句删除重复记录且只保留一条有效记录?
尝试直接在查询中删除重复项会导致错误,因为MySQL不支持更新查询同一张表,解决方案是创建临时表筛选需要更新的数据。对于多字段操作,只需在GROUP BY语句中增加所有需要考虑的字段。虽然第一种方法可能效率不高,第二种方法则是利用分组找出每个组中deptno最小的记录,然后排除这些记录,以获取所有重复的试题...

sql中如何删除重复数据
select case when ((select COUNT(name) from ntes where name = a.name group by name )) > 2 then a.id else 0 end noReId,name from ntes a ) b where b.noReId <> 0 )) d where d.noReId not in (select top 1 c.noReId from (select b.noReId from (select ...

sql删除重复项只保留一条
参考以下:第一步:查询出表中的数据数量 第二步:按条件查询出重复的数据,然后使用循环语句来删除掉重复的数据

SQL Server中怎样可以从SELECT语句的结果集中删除重复行
在要删除的有重复数据中存在几种情况:1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉。example: select distinct * from table(表名) where (条件)2.存在部分字段相同的纪录(有主键id即唯一键)如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性...

SQL删除重复数据,保留最近修改的一条记录。
\/\/拿到type和xtype两个值 type1 和 xtype1 delete from 表名 where type='P' and xtype='3' and type<>type1 and xtype<>xtype1;这样就可以了。如果你的表里面有id属性可以用一条sql语句解决:delete from 表名 where type='P' and xtype='3' and id not in(select id from 表...

怎样在Aceess表中删除\/修改重复的项
分数 数字 新建一个查询,将查询视图改成SQL视图,粘贴以下SQL语句,将表名、字段名改成你数据库中相应的名字,然后执行该查询即可。执行查询前请先备份,也可以改成数据表视图检查是否你需要删除的数据,以免误删数据。DELETE 分数表.FROM 分数表 WHERE (((分数表.分数)=DMin("[分数]","[分数表...

相似回答