请问这样的结果是为什么 ? 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了。结果一条数据也查不出来。 不应该啊 可能是什么 原因呢?
------解决方案--------------------
------解决方案-------------------- 数据中有一条数据它的tagcode为null吧。 可以测试一下select count(tagcode) from mgs_tag;应该是13125条记录。 而select count(tagcode) from msg_tag where tagcode is not null,应该是12124条记录。