От документацията (ударението е добавено):
Можете да използвате псевдоним на колона,
c_alias
, за да обозначите непосредствено предходния израз в списъка за избор, така че колоната да се показва с ново заглавие. Псевдонимът ефективно преименува елемента от списъка за избор за продължителността на заявката. Псевдонимът може да се използва вORDER BY
клауза, но не и други клаузи в заявката.
Така че не можете да се обърнете към псевдонима в where
клауза, където в момента имате:
...
AND (account_amt NOT BETWEEN ...
...
Псевдонимът не е валиден в този момент, така че търси колона с това име в една от таблиците и не намира такава. Добре е в order by
все пак.
Или трябва да замените псевдонима с повторения decode
изявление или евентуално използвайте подзаявка и след това се обърнете към псевдонима в where
клауза във външна заявка, но това може да се окаже по-малко ефективно в зависимост от това колко селективни са другите ви условия.