PcKULT.NET - La référence en informatique

  • Increase font size
  • Default font size
  • Decrease font size
  • default color
  • black color

PcKULT.NET - Recrute

PcKULT.NET est présentement à la recherche de passionnés d'informatique qui veulent se greffer à l'équipe de PcKULT.NET. Si l'aventure vous intéresse, veuillez communiquer avec nous.

webmaster@pckult.net


Ajouter le numéro de la ligne à une requête SQL

E-mail Imprimer PDF
Cet article explique comment ajouter le numéro de ligne à une requête SQL. Ceci est possible grâce à une fonction SQL nommé ROW_NUMBER(). Cette fonction génère simplement le numéro de la ligne de chaque ligne du résultat. Voici comment celle-ci fonctionne :

** Supposons que nous avons une table Employees.

SELECT EmployeeId, EmployeeNom, Salaire
    FROM Employees

EmployeeId   EmployeeNom      Salaire
--------------------------------------------
1002               Alden                  4000
2343               Lawson                4500
2004               Barbra                 4800
1105               Marsden              4500
3116               Mac                     5000


L'utilisation de ROW_NUMBER() va assigner le numéro de séquence pour chaque ligne.

SELECT ROW_NUMBER()
        OVER (ORDER BY EmployeeName) AS Ligne,
    EmployeeId, EmployeeName, Salaire
FROM Employees

Ligne  EmployeeId   EmployeeNom   Salaire
--------------------------------------------------
1      1002                Alden                 4000
2      2343                Lawson              4500
3      2004                Barbra               4800
4      1105                Marsden            4500
5      3116                Mac                   5000


Utiliser ROW_NUMBER() pour calculer X ème plus haut salarié


Vous pouvez utilisé cette fonction afin de calculé le X ème plus haut salarié. Supposons que nous voulons sélectionner le 4 ème plus haut salarié, ceci donnerais la requête suivante :

SELECT * FROM
    (SELECT ROW_NUMBER()
        OVER (ORDER BY Salaire) AS Ligne,
        EmployeeId, EmployeeNom, Salaire
    FROM Employees) AS EMP
WHERE Ligne = 4

Ligne  EmployeeId   EmployeeNom      Salaire
----------------------------------------------------
4      1105                 Marsden               4500


Utiliser ROW_NUMBER() dans le cas d'une pagination


La fonction peut aussi être utilisé afin de récupéré certaines ligne d'une page en particulier. Ceci est courrant dans le développement d'application où beaucoup de ligne sont récupéré dans la base de données et que nous voulons les filtré par page.

SELECT * FROM
    (SELECT ROW_NUMBER()
        OVER (ORDER BY EmployeeNom) AS Ligne,
        EmployeeId, EmployeeNom, Salary
    FROM Employees) AS EMP
WHERE Ligne BETWEEN 2 AND 4

Ligne  EmployeeId   EmployeeNom      Salaire
----------------------------------------------------
2        2343               Lawson                4500
3        2004               Barbra                 4800
4        1105               Marsden              4500
{mos_fb_discuss:no_discuss}



Ajouter cette page à votre Digg-Like préféré
Reddit! Del.icio.us! JoomlaVote! Google! Live! Facebook! Technorati! StumbleUpon! Spurl! Furl! Blogmarks! Yahoo! FeedMeLinks!
Commentaires (0)Add Comment

Ecrivez un commentaire
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
Réduire l'éditeur | Agrandir l'éditeur

busy
 

Sondage

Votre fournisseur Internet
 

Publicités