Cela fonctionnera :
sélectionnez salaire de ( sélectionnez salaire , rownum as rn de (sélectionnez salaire de e_salary ordre par salaire desc)) où rn =2 ;
Pourquoi ça ne marche pas :
Lors de l'affectation de ROWNUM à une ligne, Oracle commence à 1 et n'incrémente la valeur que lorsqu'une ligne est sélectionnée ; c'est-à-dire lorsque toutes les conditions de la clause WHERE sont remplies. Étant donné que notre condition exige que ROWNUM soit supérieur à 2, aucune ligne n'est sélectionnée et ROWNUM n'est jamais incrémenté au-delà de 1.
J'espère que vous êtes clair maintenant.