代码人生的小狗窝

一行行枯燥的代码,却描绘出人生的点点滴滴

您现在的位置是:首页>_Oracle管理

查询重复数据的SQL语句

发布时间:2018-05-20浏览(2362)

    求一个查询重复数据的SQL语句
    有一个CUSTMER表 如下:
    IDTP(证件类型)  IDNO(证件号码)CUSTNAME(客户姓名)
    户口本                123                         张三
    户口本                321                         李四
    护照                   123                         王五
    护照                   123                         赵六
    军官证                321                         猪七
    条件是这样的:找出证件类型相同并且证件号码相同但是姓名不同的记录   
    谢谢~~
    ------解决思路----------------------
    with table1 as (
    select '户口本' IDTP, '123' IDNO, '张三' CUSTNAME from dual union all
    select '户口本' IDTP, '321' IDNO, '李四' CUSTNAME from dual union all
    select '护照' IDTP, '123' IDNO, '王五' CUSTNAME from dual union all
    select '护照' IDTP, '123' IDNO, '赵六' CUSTNAME from dual union all
    select '军官证' IDTP, '321' IDNO, '猪七' CUSTNAME from dual 
    )
    select * from table1 
    where (IDTP, IDNO) in (select IDTP, IDNO from table1 group by IDTP, IDNO having min(CUSTNAME)<>max(CUSTNAME))