SQL. Est-il un moyen efficace pour trouver la deuxième valeur la plus basse?

J'ai le tableau suivant:

 ItemID Price
    1   10
    2   20
    3   12
    4   10
    5   11

J'ai besoin de trouver le deuxième prix le plus bas. Jusqu'à présent, j'ai une requête qui fonctionne, mais je ne suis pas sûr que c'est la plus efficace requête:

select min(price)
from table
where itemid not in
(select itemid
from table
where price=
(select min(price)
from table));

Ce que si je dois trouver de la troisième OU de la quatrième prix minimum? Je ne suis même pas mentionner d'autres attributs et des conditions... Est-il un moyen plus efficace de faire cela?

PS: a noter que le minimum n'est pas une valeur unique. Par exemple, les articles 1 et 4 sont les deux minimums. Commande Simple de ne pas le faire.

OriginalL'auteur Buras | 2013-06-08