Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ORA-00904 pengidentifikasi tidak valid pada alias dekode

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengekspor hasil kueri ke csv di Oracle SQL Developer?

  2. Lewati nilai yang dibaca dari file sebagai input ke kueri SQL di Oracle

  3. Bagaimana cara kerja GROUP BY?

  4. Bagaimana cara memilih 1 teratas dan diurutkan berdasarkan tanggal di Oracle SQL?

  5. Memahami perbedaan antara Tabel dan API Transaksi