SQL联合主键 查重

2014年最后一天,今天在给数据库导入数据的时候,遇到一个问题,就是联合主键去重。

事情是这样的,现有一个表M,我想找个表中导入了许多数据,并需要将字段A(int)和B(int)联合设置为主键。

但是在设置主键时,告知我有重复的内容,无法设置主键。

正常情况下,这两个字段的组合是唯一的,不应该重复,为了找到重复数据,看看是什么方面出了问题。

采用distinct方式

但是发现

select count(distinct name, id) from A

这句话在SQL里不适用,http://www.cnblogs.com/rainman/archive/2013/05/03/3058451.html这个里面写了,当然SQL里也会报错。

所以只能将两个字段进行转换并重新组合成一个字段进行查询

select cast(A as varchar(10))+cast(B as varchar(10)) newkey from M group by cast(A as varchar(10))+cast(B as varchar(10)) having count(cast(A as varchar(10))+cast(B as varchar(10)))>1

代码本身没有什么难度,就是在于要转换思想,不能仅仅纠结于两个int类型的主键,重新组合就方便查询了。

posted @   眾尋  阅读(2899)  评论(2编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示
主题色彩