You already know you can't use the alias in the where
clause, but that only applies in the same level of SQL. You can wrap your query in an outer query:
SELECT *
FROM (
SELECT pt.prod_desc AS"PROD_DESC",
...
END)AS ".PRNT_PROD_DESC"
FROM dims_prod_type pt
)
WHERE ".PRNT_PROD_ID" like 'A%';
The only alternative would be to repeat the whole case
that generates that column in the where
clause, which would be unpleasant with something so complicated.