Parce que les alias ne sont pas pris en charge dans la clause WHERE de la même requête. Donc, écrivez plutôt votre requête comme :
SELECT instmax
FROM
(SELECT instmax ,rownum r
FROM
( SELECT instmax FROM pswlinstmax ORDER BY instmax DESC NULLS LAST
)
) WHERE r = 2;