select count(1) from (select distinct tagcode from mes_tag)--13125条数据
select count(1) from mes_tag--13124条数据select * from mes_tag a where tagcode in (select tagcode from mes_tag where tagcode=a.tagcode and 
(a.asnm<>asnm or a.ohrid<>ohrid or paraid<>a.paraid or a.begda<>begda or a.endda<>endda or taglt<>a.taglt or pvllfl<>a.pvllfl
or pvlofl<>a.pvlofl or pvhifl<>a.pvhifl or a.pvhhfl<>pvhhfl or a.eulo<>eulo or a.euhi<>euhi or a.tunit<>tunit or decfmt<>a.decfmt or typeid<>a.typeid
or prvid<>a.prvid or sqnm<>a.sqnm or a.tagid<>tagid or prefix<>a.prefix or design<>a.design or plantctrl<>a.plantctrl or lckflg<>a.lckflg or src_scansecs<>a.src_scansecs
or tagid<>a.tagid
))--这个语句查不出数据来,这里边,除了tagcode外,其它的列都设置为or xxx<>a.xxx了。结果一条数据也查不出来。
不应该啊
可能是什么 原因呢?

解决方案 »

  1.   

    只看了你这两条语句,后面的没看。
    tagcode 应该是有两条值是一样的,你这样试一下:
    select count(1) cnt from mes_tag group by tagcode order by cnt desc;
    第一条的cnt应该是2的。
      

  2.   

    数据中有一条数据它的tagcode为null吧。
    可以测试一下select count(tagcode) from mgs_tag;应该是13125条记录。
    而select count(tagcode) from msg_tag where tagcode is not null,应该是12124条记录。
      

  3.   


    有没有这种可能:
    某个字段,两个值只差空格,结果a.col<>col时,就没有找到。oracle把它们当成一样的了
    有没有可能?
      

  4.   

    select * from mes_tag a where tagcode in (select tagcode from mes_tag where tagcode=a.tagcode and 
    (a.asnm<>asnm or a.ohrid<>ohrid or paraid<>a.paraid or a.begda<>begda or a.endda<>endda or taglt<>a.taglt or pvllfl<>a.pvllfl
    or pvlofl<>a.pvlofl or pvhifl<>a.pvhifl or a.pvhhfl<>pvhhfl or a.eulo<>eulo or a.euhi<>euhi or a.tunit<>tunit or decfmt<>a.decfmt or typeid<>a.typeid
    or prvid<>a.prvid or sqnm<>a.sqnm or a.tagid<>tagid or prefix<>a.prefix or design<>a.design or plantctrl<>a.plantctrl or lckflg<>a.lckflg or src_scansecs<>a.src_scansecs
    or tagid<>a.tagid or rowid<>a.rowid
    ))加了个or rowid<>a.rowid就可以了。
    这两条是一模一样的,我考虑有问题。我的原来的语句,没有考虑一模一样的情况。