Numéro d'article: 186133 - Dernière mise à jour: mardi 14 février 2006 - Version: 5.4 Comment numéroter dynamiquement des lignes dans une instruction SELECT Transact-SQL
SommaireRésuméCet article décrit comment classer dynamiquement les lignes lorsque vous effectuez une instruction SELECT à l'aide d'une méthode souple, qui peut être la seule solution possible et qui est plus rapide que la solution procédurale. Ligne numérotation ou de classement est un problème des procédures standard. Les solutions sont généralement basées sur les boucles et les tables temporaires ; par conséquent, ils sont basés sur SQL Server boucles et les curseurs. Cette technique est basée sur une jointure automatique. La relation sélectionnée est généralement «est supérieur à». Count Nombre de fois où chaque élément d'un ensemble particulier de données répond à la relation «est supérieur à» quand le jeu est comparé à elle-même. Remarque Les exemples suivants reposent sur la base de données pubs. Par défaut, la base de données exemple les Comptoirs et la base de données exemple pubs ne sont pas installés dans SQL Server 2005. Ces bases de données peuvent être téléchargés à partir du centre de téléchargement Microsoft. Pour plus d'informations, reportez-vous au site Web de Microsoft à l'adresse suivante : http://go.microsoft.com/fwlink/?linkid=30196
(http://go.microsoft.com/fwlink/?linkid=30196)
Après avoir téléchargé SQL2000SampleDb.msi, extraire les exemples de scripts de base de données en double-cliquant sur SQL2000SampleDb.msi. Par défaut, SQL2000SampleDb.msi extrait les scripts de base de données et un fichier readme dans le dossier suivant :Bases de données exemple C:\SQL Server 2000 Suivez les instructions dans le fichier Lisezmoi pour exécuter les scripts d'installation. Si vous utilisez SQL Server 2005Nous vous recommandons d'utiliser les fonctions de classement sont fournies en tant que nouvelle fonctionnalité dans SQL Server 2005. Pour plus d'informations sur les fonctions de classement, reportez-vous au site Web de MSDN (Microsoft Developer Network) à l'adresse suivante :http://msdn2.microsoft.com/en-us/library/ms189798.aspx
(http://msdn2.microsoft.com/en-us/library/ms189798.aspx)
Exemple 1Dans cet exemple :
Rank Au_Lname Au_Fname
---- -------------- -----------
1 Bennet Abraham
2 Blotchet-Halls Reginald
3 Carson Cheryl
4 DeFrance Michel
5 del Castillo Innes
6 Dull Ann
7 Greene Morningstar
8 Green Marjorie
9 Gringlesby Burt
10 Hunter Sheryl
11 Karsen Livia
12 Locksley Charlene
13 MacFeather Stearns
14 McBadden Heather
15 O'Leary Michael
16 Panteley Sylvia
17 Ringer Albert
18 Ringer Anne
19 Smith Meander
20 Straight Dean
21 Stringer Dirk
22 White Johnson
23 Yokomoto Akiko
(23 row(s) affected)
Exemple 2Dans cet exemple :
Rank Stor_Id Qty ---- ------- --- 1 6380 8 2 7896 120 3 8042 240 4 7067 360 5 7066 625 6 7131 780 (6 row(s) affected) Utilisez le code suivant dans SQL Server 2005. rank stor_id qty ------- ------- ------ 1 7131 130 2 7066 125 3 7067 90 4 8042 80 5 7896 60 6 6380 8 (6 row(s) affected) Exemple 3Dans cet exemple :
Rank Pub_Id Sales ---- ------ -------- 1 0736 1,961.85 2 0877 4,256.20 3 1389 7,760.85 (3 row(s) affected) Utilisez le code suivant dans SQL Server 2005. rank pub_id sales ------- ------ --------- 1 1389 2586.95 2 0877 2128.10 3 0736 1961.85 (3 row(s) affected) Inconvénients
Rank Title_Id Qty ---- -------- ---- 1 MC2222 10 4 BU1032 60 4 BU7832 60 4 PS3333 60 7 PS1372 140 7 TC4203 140 7 TC7777 140 10 BU1111 250 10 PS2106 250 10 PS7777 250 11 PC1035 330 12 BU2075 420 14 MC3021 560 14 TC3218 560 15 PC8888 750 16 PS2091 1728 (16 row(s) affected) Avantages
Publisher Earnings
------------- --------
0736 : 1,961.85
0877 : 4,256.20
1389 : 7,760.85
publisher earnings
-------------------- ---------------------
0736 : 1961.85
0877 : 2128.10
1389 : 2586.95
(3 row(s) affected)Exemple 2:
Book Qty
------------------------------------------- ----
MC2222 : 10
BU1032 : 60
BU7832 : 60
PS3333 : 60
PS1372 : 140
TC4203 : 140
TC7777 : 140
BU1111 : 250
PS2106 : 250
PS7777 : 250
PC1035 : 330
BU2075 : 420
MC3021 : 560
TC3218 : 560
PC8888 : 750
PS2091 : 1728
(16 row(s) affected)
Book qty
--------------------------------------------- -----------
MC2222 : 10
BU1032 : 15
BU7832 : 15
PS3333 : 15
TC4203 : 20
TC7777 : 20
PS1372 : 20
BU1111 : 25
PS7777 : 25
PS2106 : 25
PC1035 : 30
BU2075 : 35
MC3021 : 40
TC3218 : 40
PC8888 : 50
PS2091 : 108
(16 row(s) affected)
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
Traduction automatiqueIMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique. La version anglaise de cet article est la suivante: 186133
(http://support.microsoft.com/kb/186133/en-us/
)
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT. | Autres ressources Autres sites d'aide
CommunautésObtenir de l'aideTraductions disponibles
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Retour au début
