Ini tidak benar-benar menjawab pertanyaan, tetapi tampaknya merupakan bug parser (atau 'fitur') daripada persyaratan bahasa.
Menurut Dukungan Oracle Saya, ini tampaknya telah diangkat sebagai bug 14196463 tetapi ditutup tanpa resolusi. Itu juga disebutkan di utas komunitas 3561546. Anda memerlukan akun MOS, atau setidaknya akun Oracle, untuk melihat salah satunya.
Itu juga telah dibahas di utas OTN yang memerlukan login Oracle dasar daripada akun MOS, sejauh yang saya tahu. Itu juga tidak memiliki banyak informasi tetapi mengulangi temuan Anda, dan juga menunjukkan bahwa perilaku tersebut telah ada setidaknya hingga 9.2.0.8 dan mungkin jauh lebih awal.
Dokumentasinya agak kabur tetapi tidak menunjukkan bahwa ini diperkirakan menjadi masalah:
Untuk kueri gabungan yang berisi operator yang ditetapkan
UNION
,INTERSECT
,MINUS
, atauUNION ALL
,ORDER BY
klausa harus menentukan posisi atau alias daripada ekspresi eksplisit. Juga,ORDER BY
klausa hanya dapat muncul di kueri komponen terakhir.ORDER BY
klausa memerintahkan semua baris yang dikembalikan oleh seluruh kueri gabungan.
Anda membuat alias ekspresi Anda dan menggunakannya, dan itu tidak berarti Anda harus membuat alias komponen tertentu (walaupun tentu saja tidak berarti Anda tidak harus juga).
Perilaku tersebut tampaknya tidak konsisten dengan alias yang valid untuk proyeksi akhir, dan aturan biasa tentang alias hanya valid dalam urutan demi klausa - ini tampaknya jatuh di antara keduanya.