Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Por que o Oracle retorna uma sequência específica se os valores 'orderby' forem idênticos?


A ordenação não se resume a "puro acaso" - a menos que você altere a consulta para:
SELECT
  Date,
  Amount
FROM MyTable
WHERE Date = '26-OCT-2010'
ORDER BY Date, DBMS_RANDOM.VALUE;

A ordenação é "arbitrária". Em vez de "jogar dados" para decidir a ordem arbitrária (o que incorreria em algum custo desnecessário), a Oracle apenas retorna os dados na ordem em que os encontrou - o que provavelmente será o mesmo de execução para execução no curto prazo. (A longo prazo, algo pode mudar no ambiente para tornar o ordenamento diferente - mas ainda arbitrário).