如何查询数据库中相同的数据?

cjjbjh 2004-08-03 02:24:41
如何查询数据库中相同的数据,身份证和姓名相同,但还有多个字段的数据不一样,我想把其中身份证和姓名相同的查出来!

例如:数据表ss中有相同的身份证a1和姓名a2(两个以上的身份证、姓名),怎么用sql语句查询出来?

字段:A1 A2 A3 A4 A5 A6
数据:320* 王小 24 35 60 1
450* 吴小 24 35 60 1
820* 李小 28 32 80 0
320* 王小 66 4 50 1
110* 张小 24 35 60 1
如何查询当a6=1时的a1,a2重复的数据?(上例数据中有两条存在身份证和姓名相同的数据)
select * from ss where A6='1' ???????


...全文
201 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
青团子 2004-08-03

(所影响的行数为 8 行)

A1 A2 A3 A4 A5 A6
---------- ---------- ---------- ---------- ---------- ----------
320* 王小 66 4 50 1
320* 王小 24 35 60 1
820* 李小 28 32 81 1
820* 李小 28 32 82 1

(所影响的行数为 4 行)

A1 A2 A3 A4 A5 A6
---------- ---------- ---------- ---------- ---------- ----------
320* 王小 66 4 50 1
320* 王小 24 35 60 1
820* 李小 28 32 80 0
820* 李小 28 32 81 1
820* 李小 28 32 82 1

(所影响的行数为 5 行)

A1 A2 A3 A4 A5 A6
---------- ---------- ---------- ---------- ---------- ----------
110* 张小 24 35 60 1
320* 王小 66 4 50 1
320* 王小 24 35 60 1
820* 李小 28 32 81 1
820* 李小 28 32 82 1

(所影响的行数为 5 行)

A1 A2 A3 A4 A5 A6
---------- ---------- ---------- ---------- ---------- ----------
110* 张小 24 35 60 1
110* 张小 24 35 60 0
320* 王小 66 4 50 1
320* 王小 24 35 60 1
820* 李小 28 32 80 0
820* 李小 28 32 81 1
820* 李小 28 32 82 1

回复
青团子 2004-08-03
--测试数据
create table ss(A1 varchar(10),A2 varchar(10),A3 varchar(10),A4 varchar(10),A5 varchar(10),A6 varchar(10))
insert ss select '320*' ,'王小','24','35','60','1'
union all select '450*' ,'吴小','24','35','60','1'
union all select '820*' ,'李小','28','32','80','0'
union all select '820*' ,'李小','28','32','81','1'
union all select '820*' ,'李小','28','32','82','1'
union all select '320*' ,'王小','66','4','50','1'
union all select '110*' ,'张小','24','35','60','1'
union all select '110*' ,'张小','24','35','60','0'
go

--查询
SELECT ss.* From ss,(
select A1 from ss where A6='1' group by A1
having count(*)>1
) a where ss.A1=a.A1 and A6='1'

SELECT ss.* From ss,(
select A1 from ss where A6='1' group by A1
having count(*)>1
) a where ss.A1=a.A1

SELECT ss.* From ss,(
select A1 from ss group by A1
having count(*)>1
) a where ss.A1=a.A1 and A6='1'

SELECT ss.* From ss,(
select A1 from ss group by A1
having count(*)>1
) a where ss.A1=a.A1

--删除测试
drop table ss


A6='1'这个条件放在不同的地方会得到不同的结果
回复
cjjbjh 2004-08-03
OK!谢谢!
回复
青团子 2004-08-03
SELECT * From ss,(
select A1 from ss group by A1
having count(*)>1
) a where ss.A1=a.A1 and A6='1'

回复
cjjbjh 2004-08-03
谢谢大家,好像还是不行!
回复
青团子 2004-08-03
SELECT * From ss,(
select A1 from ss where A6='1'
group by A1
having count(*)>1
) a where ss.A1=a.A1
回复
fhsoft8508539 2004-08-03
楼上是将重复的记录去掉,不符合提问者的要求,哪位大哥给予解答,小弟也想知道
回复
wsdzmhongm 2004-08-03
select distinct * from ss where A6='1'
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-08-03 02:24
社区公告
暂无公告