Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-00904 невалиден идентификатор на псевдоним за декодиране

От документацията (ударението е добавено):

Можете да използвате псевдоним на колона, c_alias , за да обозначите непосредствено предходния израз в списъка за избор, така че колоната да се показва с ново заглавие. Псевдонимът ефективно преименува елемента от списъка за избор за продължителността на заявката. Псевдонимът може да се използва вORDER BY клауза, но не и други клаузи в заявката.

Така че не можете да се обърнете към псевдонима в where клауза, където в момента имате:

...
AND (account_amt NOT BETWEEN ...
...

Псевдонимът не е валиден в този момент, така че търси колона с това име в една от таблиците и не намира такава. Добре е в order by все пак.

Или трябва да замените псевдонима с повторения decode изявление или евентуално използвайте подзаявка и след това се обърнете към псевдонима в where клауза във външна заявка, но това може да се окаже по-малко ефективно в зависимост от това колко селективни са другите ви условия.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java:Как да вмъкна CLOB в базата данни на Oracle

  2. Разделяне на низ на няколко реда в Oracle

  3. Как Java за OS X 2013-004 засяга (прекъсва) Swing приложения?

  4. Разширете EM Grid Control до нови възли

  5. Oracle :как да извадите две дати и да получите минути от резултата