SQL - 选择Union All All Wiving Order

时间:2014-06-16 05:35:05

标签: sql-server-2008

我有两个存储过程。其中两个存储过程的条件逻辑相同。但是连接表,选择列对于两个存储过程是不同的。

SP就像下面一样。

  Select a, b, c, d, e From Table (Join Logic) where (Conditions)
  Union All
  Select a, b, c, d, e From Table (Join Logic) where (Conditions)
  Union All
  Select a, b, c, d, e From Table (Join Logic) where (Conditions).

我没有使用过任何订单。两个SP之间唯一的区别是选择列和&加入 表格不同。

但是SP1& SP2结果订单仅对一个或两个记录不同。为什么会这样发生。 由于Union All,任何Auto order By已经发生了吗?

如果我在选择参数中使用Distinct,我会收到正确的订单。

任何人都可以告诉我导致此订单对齐的原因吗?

1 个答案:

答案 0 :(得分:2)

如果没有明确的ORDER BY,则无法保证订购。期

除非您有ORDER BY,否则不要依赖订购;它可能会在将来改变。