我正在使用此查询:
select o.orderno,
o.day,
a.name,
o.description,
a.adress,
o.quantity,
a.orderType,
o.status,
a.Line,
a.price,
a.serial
from orders o
inner join account a
on o.orderid=a.orderid
order by o.day
我白天订购。在根据日期对结果进行排序之后,在排序时考虑的下一个字段是什么,在同一天,会考虑哪个订单?
答案 0 :(得分:2)
没有进一步的排序。您将在每天以Oracle检测到它们的顺序获得结果,这不能保证以任何方式保证,并且对于同时运行多次的查询可能会有所不同。这取决于你通常无法控制甚至可见度的引擎盖下的许多东西。您可能会以适合您的明显顺序看到结果,但它可能会在将来执行时发生变化。例如,更改数据会影响执行计划,这会影响查看结果的顺序。
如果您需要特定订单,或者只是希望每次运行查询时以一致的顺序返回它们,则必须在order by
子句中指定它。
这是Tom Kyte经常强调的;例如in this often-quoted article。
答案 1 :(得分:0)
尝试按唯一/主键排序。在这种情况下,如果它是您的主键,则为orderno。
但是,您的查询充满了错误。 例如表别名在SELECT子句中使用,但未在FROM
中指定