2010-10-18 3 views

Répondre

3

Essayez ceci: cela devrait donner le deuxième salaire:

SELECT MAX (salaireemp) FROM employee OÙ salaireemp < (SELECT MAX (salaireemp) FROM employee);

+0

Je suppose que vous cherchez une réponse très simple et pas besoin – Anurag

+0

fonctionne mieux .. !! Mais comment ..?/Dint obtenir ceci. !! – pvaju896

+0

Il y a deux requêtes dans celui-ci: la requête interne (SELECT MAX (EmpSalary) FROM employee) renvoie le salaire le plus élevé. La requête externe a une condition where qui renvoie la plus grande valeur dans la table qui est inférieure à la valeur renvoyée par la requête interne. Étant donné que la requête interne renvoie le salaire le plus élevé, la requête externe renvoie la deuxième valeur la plus élevée. J'espère que je l'ai expliqué correctement. – Anurag

7
;WITH CTE AS (SELECT ROW_NUMBER() OVER (ORDER BY SortColumn DESC) AS RowNumber, * 
       FROM YourTable) 
SELECT * FROM CTE WHERE RowNumber = 2 
+0

wats CTE dans ce ?? – pvaju896

+1

Expression de table commune. Vous pouvez utiliser n'importe quel nom. CTE_SALARY par exemple. – anivas

+0

Wats se passe ici .. wen nous l'exécutons .. ?? – pvaju896

-1

top select (1) prodMrp du produit où ne prodMrp = (sélectionner supérieure (1) prodMrp de l'ordre de produit par prodMrp DESC) commande par prodMrp DESC

+0

Si vous voulez copier et coller, prenez au moins la peine de le faire * paraître * pertinent. – cHao

+0

Cela fonctionne bien pour moi .. !! Tu peux essayer.. – pvaju896

Questions connexes