在一台机器中,我们有一组数据,并说我们有一个包含true或false的列isValid,我们还有另一列定义了一个组.对于每个组,只有一个值为Isvalid列为true,其余为假的.
现在,当我们运行查询时,基于Group,包含Isvalid列为True的行将作为查询结果中的第一行,其余行包含Isvalid列,这些行为false.
在这里,我们不使用任何'order by'或'group by',我们只使用'inner join'和'where'条件.
问题出在我们的开发服务器和测试服务器上,我们得到了预期的查询结果,但是当它进入实时服务器时(对于所有三个服务器,即开发,测试和实时服务器,数据完全不同,所有这些服务器都在同一版本上运行SQL 2005),结果互换(带有无效列的行false作为查询结果的第一行)不知道为什么.有什么建议吗?
请帮忙,
非常感谢,Byfour
显而易见的答案是:测试,开发和实时服务器上的不同数据.
但即使使用相同的数据,没有ORDER BY子句,结果通常以聚簇索引顺序返回,但这不能保证.
如果您需要特定排序的结果,那么您必须使用一个ORDER BY 子句.