oracle求一个查询重复数据SQL语句

有一个CUSTMER表如下:IDTP(证件类型)IDNO(证件号码)CUSTNAME(客户姓名)户口本123张三户口本321李四护照123王五护照123赵六军官证321猪... 有一个CUSTMER表 如下:
IDTP(证件类型) IDNO(证件号码)CUSTNAME(客户姓名)
户口本 123 张三
户口本 321 李四
护照 123 王五
护照 123 赵六
军官证 321 猪七
条件是这样的:找出证件类型相同并且证件号码相同但是姓名不同的记录
谢谢~~
展开
 我来答
小鹿聊情感
2015-11-03 · 超过13用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:14.1万
展开全部

mysql 是这么写的,我没学过orcal语法,你可以类比一下

select * from CUSTMER t1 where exists(

 select 1 from CUSTMER t2

where t1.IDTP=t2.IDTP

and t1.IDNO=t2.IDNO

and t1.CUSTNAME <>t2.CUSTNAME

)

longrenyingdc8ecb1
2015-11-03 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2485万
展开全部
select IDTP,IDNO,CUSTNAME from table where IDTP||IDNO in
(select IDTP||IDNO from table group by IDTP,IDNO having count(*)>=2
minus
select IDTP||IDNO from table group by IDTP||IDNO,CUSTNAME having count(*)=1)
还有其他写法,稍微有点麻烦,而且没有环境没办法测试。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
法ke优切克闹
2015-11-03 · 超过28用户采纳过TA的回答
知道答主
回答量:57
采纳率:100%
帮助的人:33.8万
展开全部
select t1.t1_tp,t1.t1_no,t2.t2_name
from

(select t.idtp as "t1_tp" ,t.idno as "t1_no" ,max(rowid) as "t1_rowid"
from custmer t
group by t.idtp ,t.idno
having count(1)>1)t1,

(select t.custname as "t2_name",max(rowid) as "t2_rowid"
from custmer t
group by t.custname
having count(1)<2 )t2
where t1.t1_rowid=t2.t2_rowid

没运行自己测一下吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式