SQL字段重复值的查询与筛选

SQL字段重复值的查询与筛选

1、要查询指定字段有重复值的记录

select fieldname, count(fieldname) as ccount from tablename group by fieldname having(fieldname) > 1

2、要查询过虑指定字段重复值的所有记录

select distinct fieldname from tablename

实例:

在以下数据表中执行上述两种操作

1、筛选出有重复的数据

select recval,count(recval) as ccount from rectable group by recval

进一步用having筛选出有重复的记录

select recval,count(recval) as ccount from rectable group by recval having count(recval)>1

用这种方式很容易就找到重复的记录,便于进行数据处理。

2、过虑掉重复数据

select distinct recval from rectable

这里需注意distinct可以对多字段重复筛选,但会产生无重复字段对有重复字段的忽略,即在多字段中,只要有未重复记录,都会返回结果。

在此例子中,同时对recval、recno两个字段进行重复过滤,虽然recval有重复记录,但由于recno字段没有重复记录,所以查询结果将recno中未重复的全部返回。

所以根据以上简单测试,distinct更多地应用于单字段重复过滤查询。

在实际使用中,第一种语句更为常用,因为重复记录总是要重点查找的目标。

滚动至顶部