當我運行此查詢時,結果未正確排序。當兩次使用同一列時Oracle不能正確排序
SELECT
SYSDATE - datecolumn a,
SYSDATE - datecolumn sortcolumn
FROM atable
ORDER BY sortcolumn
產地:
2576.780243055555555555555555555555555556
2586.297013888888888888888888888888888889
2342.294479166666666666666666666666666667
2617.297476851851851851851851851851851852
2624.855104166666666666666666666666666667
2624.855138888888888888888888888888888889
2624.854236111111111111111111111111111111
2372.296643518518518518518518518518518519
2645.257800925925925925925925925925925926
2403.294756944444444444444444444444444444
2676.297696759259259259259259259259259259
當第一行(SYSDATE - datecolumn一)被刪除,一切工作正常。這有什麼特別的原因嗎?
嘗試'TO_NUMBER(SYSDATE - datecolumn)as sort_column'。我認爲你的SQL排序不是數字。 –
有趣的行爲(我可以在Oracle 11gR2上進行確認)。有許多解決方法,但很高興知道它是錯誤還是功能。 – GoranM
在我的instaince上都按預期工作,試着重建你的表(當表損壞時我面臨oracle問題)或提供完整的測試用例(用表創建和填充) –