sql查询出来的值雷同但是不相等,这是为什么呢
sql查询出来的值相同但是不相等,这是为什么呢?T1和T2是结构完全相同的表,根据主键PARTY_ID关联,max字段是
sql查询出来的值相同但是不相等,这是为什么呢? T1和T2是结构完全相同的表,根据主键PARTY_ID关联,max字段是在两张表中都是number类型的,查询T1T2的max不相同的数据时却出现了相同的max值
SELECT t1.MAXLARGESTDURATION,t2.MAXLARGESTDURATION FROM T_MK_ROLLINGLIST t1,T_ROLLINGLIST t2 WHERE t1.PARTY_ID = t2.PARTY_ID AND t1.MAXLARGESTDURATION <> t2.MAXLARGESTDURATION; t1.MAX t2.MAX 16868 23333 34848 447526 5150150 66161 7451451 82929 95252 103838 11137137 122828 134091 143232 154956 167171 174646 184242 192929 205252 [解决办法] 引用: T1和T2是结构完全相同的表,根据主键PARTY_ID关联,max字段是在两张表中都是number类型的,查询T1T2的max不相同的数据时却出现了相同的max值 SELECT t1.MAXLARGESTDURATION,t2.MAXLARGESTDURATION FROM T_MK_ROLLINGLIST t1,T_ROLLINGLIST t2 WHERE t1.PARTY_ID = t2.PARTY_ID AND t1.MAXLARGESTDURATION <> t2.MAXLARGESTDURATION; t1.MAX t2.MAX 16868 23333 34848 447526 5150150 66161 7451451 82929 95252 103838 11137137 122828 134091 143232 154956 167171 174646 184242 192929 205252 很奇怪,你再仔细检查一下,看看两个表的数据。
可以先选择一条数据测试一下。因为这样看语法什么的都没错。很有可能是表的数据造成的
[解决办法] 楼主你确定执行的是你贴的sql吗?
为什么结果集的字段和你sql中的字段名不一样
[解决办法] 引用: Quote: 引用: Quote: 引用: T1和T2是结构完全相同的表,根据主键PARTY_ID关联,max字段是在两张表中都是number类型的,查询T1T2的max不相同的数据时却出现了相同的max值 SELECT t1.MAXLARGESTDURATION,t2.MAXLARGESTDURATION FROM T_MK_ROLLINGLIST t1,T_ROLLINGLIST t2 WHERE t1.PARTY_ID = t2.PARTY_ID AND t1.MAXLARGESTDURATION <> t2.MAXLARGESTDURATION; t1.MAX t2.MAX 16868 23333 34848 447526 5150150 66161 7451451 82929 95252 103838 11137137 122828 134091 143232 154956 167171 174646 184242 192929 205252 很奇怪,你再仔细检查一下,看看两个表的数据。 可以先选择一条数据测试一下。因为这样看语法什么的都没错。很有可能是表的数据造成的 单条数据也是那样,我又试了下这样的 SELECT t1.MAXLARGESTDURATION , t2.MAXLARGESTDURATION, CASE WHEN t1.MAXLARGESTDURATION = t2.MAXLARGESTDURATION THEN '相等' ELSE '不相等' END FROM T_MK_ROLLINGLIST t1,T_ROLLINGLIST t2 WHERE t1.PARTY_ID = t2.PARTY_ID AND t1.MAXLARGESTDURATION != t2.MAXLARGESTDURATION; 16868不相等 23333不相等 34848不相等 447526不相等 5150150不相等 66161不相等 7451451不相等 82929不相等 95252不相等 103838不相等 11137137不相等 122828不相等 134091不相等 143232不相等 154956不相等 167171不相等 174646不相等 184242不相等你的CASE WHEN已经明显的显示出数据库在作等值比较时,我们看上去一样的数据其实是不相等的。
你确定你的数据是NUMBER型吗?类型一样吗?是否有空格的原因?还有就是全/半角。
以上原因都会导致数据库判断时不相等
[解决办法] 不要加 AND t1.MAXLARGESTDURATION <> t2.MAXLARGESTDURATION 条件
[解决办法] 引用: 你的CASE WHEN已经明显的显示出数据库在作等值比较时,我们看上去一样的数据其实是不相等的。 你确定你的数据是NUMBER型吗?类型一样吗?是否有空格的原因?还有就是全/半角。 以上原因都会导致数据库判断时不相等 应该是这个问题吧。
[解决办法] 你最后条件改成t1.MAXLARGESTDURATION - t2.MAXLARGESTDURATION= 0 再试一下。 如果真的是number 不可能出现你的结果。
[解决办法] 数据类型不一样