首页 > 代码库 > SQL联合主键 查重
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类型的主键,重新组合就方便查询了。
SQL联合主键 查重
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。