Quando si esegue questa query, i risultati non sono ordinati correttamente.Oracle non si ordina correttamente quando si utilizza la stessa colonna due volte
SELECT
SYSDATE - datecolumn a,
SYSDATE - datecolumn sortcolumn
FROM atable
ORDER BY sortcolumn
produce:
2576.780243055555555555555555555555555556
2586.297013888888888888888888888888888889
2342.294479166666666666666666666666666667
2617.297476851851851851851851851851851852
2624.855104166666666666666666666666666667
2624.855138888888888888888888888888888889
2624.854236111111111111111111111111111111
2372.296643518518518518518518518518518519
2645.257800925925925925925925925925925926
2403.294756944444444444444444444444444444
2676.297696759259259259259259259259259259
Quando la prima linea (SYSDATE - datecolumn una,) viene rimosso, tutto funziona bene. C'è qualche ragione particolare per cui questo sta accadendo?
Provare 'TO_NUMBER (SYSDATE - datecolumn) come sort_column'. Presumo che l'ordinamento con il tuo SQL non è numerico. –
Comportamento interessante (posso confermarlo su Oracle 11gR2). Esistono molti soluzioni, ma sarebbe bello sapere se si tratta di un bug o di una funzionalità. – GoranM
sulla mia interezza tutto funziona come previsto, provare a ricostruire la tabella (ho affrontato problemi di Oracle quando la tabella è corrotta) o fornire un test case completo (con creazione e riempimento della tabella) –