2010-02-20 7 views
2

Je souhaite sélectionner les lignes entre A et B à partir d'une table. La table a au moins une ligne mais elle peut avoir moins de B lignes. Par exemple, si A = 2, B = 5 et que la table comporte 3 lignes, elle doit renvoyer les lignes 2 et 3.Sélection des lignes de base de données dans la plage

Comment puis-je obtenir les lignes dans une telle plage?

J'utilise Microsoft SQL Server 2008.

Répondre

6

Vous pouvez utiliser quelque chose de similaire à ce qui est décrit dans this SO question.

I.E.

SELECT * FROM ( 
    SELECT *, ROW_NUMBER() OVER (ORDER BY YOUR_ORDERED_FIELD) as row FROM YOUR_TABLE 
) a WHERE row > 5 and row <= 10 

Où A = 5 et B = 10 dans votre exemple.

2
SELECT *,ROW_NUMBER() OVER 
    (ORDER BY ordercol) AS 'rank' 
FROM table 
where rank between @a and @b 
Questions connexes