Z dokumentace (zvýraznění přidáno):
Můžete použít alias sloupce
c_alias, k označení bezprostředně předcházejícího výrazu ve výběrovém seznamu, aby se sloupec zobrazil s novým záhlavím. Alias efektivně přejmenuje položku seznamu výběru po dobu trvání dotazu. Alias lze použít vORDER BYklauzule, ale ne jiné klauzule v dotazu.
Takže nemůžete odkazovat na alias v where klauzule, kde v tuto chvíli máte:
...
AND (account_amt NOT BETWEEN ...
...
Alias v tomto okamžiku není platný, takže hledá sloupec s tímto názvem v jedné z tabulek a žádný nenajde. V order by je to v pořádku ačkoli.
Buď musíte nahradit alias opakovaným decode nebo případně použijte poddotaz a poté odkazujte na alias v where klauzule ve vnějším dotazu, ale to může být méně účinné v závislosti na tom, jak selektivní jsou vaše ostatní podmínky.