SQL联合主键 查重
2014-12-31 10:58
1526 查看
2014年最后一天,今天在给数据库导入数据的时候,遇到一个问题,就是联合主键去重。
事情是这样的,现有一个表M,我想找个表中导入了许多数据,并需要将字段A(int)和B(int)联合设置为主键。
但是在设置主键时,告知我有重复的内容,无法设置主键。
正常情况下,这两个字段的组合是唯一的,不应该重复,为了找到重复数据,看看是什么方面出了问题。
采用distinct方式
但是发现
这句话在SQL里不适用,/article/4850994.html这个里面写了,当然SQL里也会报错。
所以只能将两个字段进行转换并重新组合成一个字段进行查询
代码本身没有什么难度,就是在于要转换思想,不能仅仅纠结于两个int类型的主键,重新组合就方便查询了。
事情是这样的,现有一个表M,我想找个表中导入了许多数据,并需要将字段A(int)和B(int)联合设置为主键。
但是在设置主键时,告知我有重复的内容,无法设置主键。
正常情况下,这两个字段的组合是唯一的,不应该重复,为了找到重复数据,看看是什么方面出了问题。
采用distinct方式
但是发现
select count(distinct name, id) from A
这句话在SQL里不适用,/article/4850994.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定义联合主键
- sql 设置主键 联合主键
- sql 创建联合主键
- 联合主键/复合主键的数据库表,在另一个数据库表是否存在的SQL查询语名
- SQL—联合主键
- 联合主键,SQL语句怎么写?
- sql 中设置联合主键怎么设
- SQL中的主键以及联合主键
- sql中设置联合主键的具体方法
- SQL 中联合主键设为外键的问题
- SQL 联合主键 可以设置外键
- Java--批量插入更新在一条sql里解决-mybatis-mysql-联合主键(建立唯一索引)
- Sql 联合主键
- sql------创建主键、外键、联合主键
- SQL 2005 修改表联合主键
- sql的注释和联合主键
- SSH下联合主键类写法及oracle数据库中创建联合主键表的sql语句
- sql联合主键,用于多对多,关系映射
- MyBatis联合主键结果集与SQL查询结果不一致的问题