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

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' ???????


...全文
260 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
青团子 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'

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧