PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Strano bug di ordinamento (è un bug?) quando si ordinano due colonne con valori identici

Questo non è un bug. Il limite e l'offset si verificano dopo l'ordine e non è deterministico quali righe vengono selezionate in un caso rispetto all'altro. In generale, vuoi avere un tiebreaker in modo che il tuo ordinamento sia stabile e deterministico (preferisco usare tiebreaker univoci anche quando non ho problemi di limite o offset per garantire che la query sia la stessa ogni volta che viene eseguita).

Se stai eseguendo l'impaginazione, aggiungi la chiave primaria o la chiave surrogata all'ordinamento come tiebreaker. Questo è davvero il modo migliore.