Select the product you need help with
Dynamisches Nummerieren von Zeilen in einer SELECT Transact-SQL-AnweisungArtikel-ID: 186133 - Produkte anzeigen, auf die sich dieser Artikel bezieht Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base: 186133
(http://support.microsoft.com/kb/186133/EN-US/
)
How to dynamically number rows in a SELECT Transact-SQL statementBitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung. Auf dieser SeiteZusammenfassung Dieser Artikel beschreibt, wie Sie bei der Ausführung einer SELECT-Anweisung Zeilen mit einer flexiblen Methode dynamisch in eine Rangfolge bringen. Dies ist möglicherweise die einzige Lösung und ist schneller als die prozedurale Lösung. Die Zeilennummerierung oder Rangfolge ist ein typisches prozedurales Problem. Die Lösungen basieren in der Regel auf Schleifen und temporären Tabellen, also auf SQL Server-Schleifen und -Cursorn. Diese Technik beruht auf einem Auto-Join. Die gewählte Beziehung ist in der Regel "ist größer als". Zählen Sie, wie oft die einzelnen Elemente einer bestimmten Datenmenge die Beziehung "ist größer als" erfüllen, wenn die Datenmenge mit sich selbst verglichen wird.
Hinweis: Die folgenden Beispiele basieren auf der Datenbank pubs. Standardmäßig sind die Beispieldatenbanken Northwind und pubs nicht in SQL Server 2005 installiert. Diese Datenbanken können aus dem Microsoft Download Center heruntergeladen werden. Weitere Informationen hierzu finden Sie auf folgender Website von Microsoft: http://go.microsoft.com/fwlink/?linkid=30196
Nachdem Sie die Datei "SQL2000SampleDb.msi" heruntergeladen haben, extrahieren Sie die Datenbankskripts, indem Sie auf "SQL2000SampleDb.msi" doppelklicken. Standardmäßig extrahiert SQL2000SampleDb.msi die Datenbankskripts und die ReadMe-Datei in den folgenden Ordner:
(http://go.microsoft.com/fwlink/?linkid=30196)
C:\SQL Server 2000 Sample Databases
Folgen Sie den Anweisungen in der ReadMe-Datei, um die Installationsskripts auszuführen.
Wenn Sie SQL Server 2005 verwendenMicrosoft empfiehlt, die Rangfolgefunktionen zu verwenden, die als neues Feature in SQL Server 2005 zur Verfügung stehen. Weitere Informationen zu den Rangfolgefunktionen finden Sie auf folgender Website des Microsoft Developer Network (MSDN):http://msdn2.microsoft.com/de-de/library/ms189798.aspx
(http://msdn2.microsoft.com/de-de/library/ms189798.aspx)
Beispiel 1Inhalt dieses Beispiels:
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)
Beispiel 2Inhalt dieses Beispiels:
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) Verwenden Sie in SQL Server 2005 den folgenden Code. 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) Beispiel 3Inhalt dieses Beispiels:
Rank Pub_Id Sales ---- ------ -------- 1 0736 1,961.85 2 0877 4,256.20 3 1389 7,760.85 (3 row(s) affected) Verwenden Sie in SQL Server 2005 den folgenden Code. rank pub_id sales ------- ------ --------- 1 1389 2586.95 2 0877 2128.10 3 0736 1961.85 (3 row(s) affected) Nachteile
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) Vorteile
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)Beispiel 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)
EigenschaftenArtikel-ID: 186133 - Geändert am: Freitag, 13. Mai 2011 - Version: 6.0 Die Informationen in diesem Artikel beziehen sich auf:
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
| SPRACHE AUSWÄHLEN
|


Zum Anfang








