您的位置:首页 > 数据库

SQL查询多条不重复记录值

2011-07-11 17:31 260 查看
由于设计需要,需要查询不重复的记录值。例如有如下表结构和值
table
fid name sex
1 a 男
2 b 男
3 c 女
4 d 女
5 a 男
6 b 男
方案一:distinct
select distinct name from table
得到结果:
name
a
b
c
d
那如果要同时name和sex字段都重复才被筛选,则使用以下语句:
select distinct name, sex from table

方案二:group by
select min(fid),name,sex from table group by name
得到结果:
fid name sex
1 a 男
2 b 男
3 c 女
4 d 女
如果要打开所有记录,不指定字段用(*),使用如下语句:
select * from table where fid in(Select min(fid) FROM table group by name)
得到结果:
fid name sex
1 a 男
2 b 男
3 c 女
4 d 女

方案三:
查询数据中所有某字段重复的记录
select * from table where name in(select name from table group by name having count(name)=2)
得到如下结果:
fid name sex
1 a 男
2 b 男
5 a 男
6 b 男
以此类推:
select * from table where name in(select name from table group by name having count(name)=1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: