分享

SQL 列去重复

 jsonhan 2015-11-27
SQL去除列中重复ID
1.select * from his.tbStocktakeInfo
where StocktakeInfoID in (select StocktakeInfoID from 
his.tbStocktakeInfo group by StocktakeInfoID having count(StocktakeInfoID) > 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)

3、查找表中多余的重复记录(多个字段)
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)


4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (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 a
where (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)


6、select  InventoryID,GoodsName,BatchNo,Format,Cost,GoodsID from dbo.v_BatchGoodsInventory as a 
where BatchNo = (select MIN(BatchNo) 
from dbo.v_BatchGoodsInventory as b 
where a.GoodsID = b.GoodsID )AND StoreID='C8E43A8D-0311-490F-AA5A-84260DFC87EA' 
AND a.Status=1 AND a.GoodsStatus=1 ORDER  BY  a.GoodsName;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多