微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

相同的查询在SQL中产生不同的结果

如何解决相同的查询在SQL中产生不同的结果

| 在一台机器上,我们有一组数据,并说有一个isValid列,其中包含true或false,我们还有另一个列定义了一个组。对于每个组,对于Isvalid列只能有一个值为true,其余的则为true为假。 现在,当我们基于Group运行查询时,包含Isvalid列为True的行将作为查询结果的第一行,其余的行包含Isvalid列,它们为false。 这里我们不使用任何\'order by \'或\'group by \',而只使用\'inner join \'和\'where \'条件。 问题出在我们的开发服务器和测试服务器上,我们获得了预期的查询结果,但是当它转到实时服务器时(对于所有三台服务器(即开发,测试和实时服务器),数据完全不同,并且所有这些服务器都在同一版本上运行sql 2005),结果互换(查询结果的第一行带有isvalid列false的行)不知道为什么。有任何建议吗? 请帮忙, 非常感谢, 拜弗     

解决方法

显而易见的答案是:测试服务器,开发服务器和实时服务器上的不同数据。 但是,即使具有相同的数据,但没有
ORDER BY
子句,结果通常也以聚簇索引顺序返回,但这不能保证。 如果需要按特定顺序排列结果,则必须使用“ 0”子句。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。