Dari dokumentasi (penekanan ditambahkan):
Anda dapat menggunakan alias kolom,
c_alias
, untuk memberi label ekspresi sebelumnya dalam daftar pilih sehingga kolom ditampilkan dengan judul baru. Alias secara efektif mengganti nama item daftar pilihan selama kueri. Alias dapat digunakan diORDER BY
klausa, tetapi bukan klausa lain dalam kueri.
Jadi Anda tidak bisa merujuk ke alias di where
klausa, di mana saat ini Anda memiliki:
...
AND (account_amt NOT BETWEEN ...
...
Alias tidak valid pada saat itu, jadi itu mencari kolom dengan nama itu di salah satu tabel, dan tidak menemukannya. Tidak apa-apa dalam order by
sekalipun.
Anda juga perlu mengganti alias dengan decode
yang diulang-ulang pernyataan, atau mungkin menggunakan subquery dan kemudian merujuk ke alias di where
klausa dalam kueri luar, tetapi itu mungkin menjadi kurang efisien tergantung pada seberapa selektif kondisi Anda yang lain.