Inner Join für Zeilennummer in SQL Server
Ziel: Führen Sie einen Inner Join für zwei Tabellen mithilfe ihrer Zeile durch Zahlen.
Szenario:
Betrachten Sie zwei Tabellen A und B mit den folgenden Daten:
Table A | Table B |
---|---|
RowA | Row4 |
RowB | Row3 |
RowC | Row2 |
RowD | Row1 |
Das Ziel besteht darin, die Tabellen basierend auf ihren Zeilennummern zu verbinden und die folgende Ausgabe abzurufen:
Table A | Table B |
---|---|
RowA | Row1 |
RowB | Row2 |
RowC | Row3 |
RowD | Row4 |
Lösung:
Um einen Inner Join für Zeilennummern durchzuführen, verwenden Sie die Funktion ROW_NUMBER() als folgt:
SELECT A.val, B.val FROM ( SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num FROM A ) AS A JOIN ( SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num FROM B ) AS B ON A.row_num = B.row_num ORDER BY A.val, B.val;
Diese Abfrage erstellt eine temporäre Tabelle für jede Eingabetabelle (A und B) und weist jeder Zeile Zeilennummern basierend auf der Val-Spalte zu. Die Tabellen werden dann mithilfe der Spalte „row_num“ verknüpft und die Ergebnisse werden nach der Spalte „val“ in beiden Tabellen sortiert.
Zusätzliche Überlegungen:
SQL Fiddle Demo:
[SQL Fiddle Demo](https://www.sqlfiddle.com/#!18/69540/2 )
Das obige ist der detaillierte Inhalt vonWie verbinde ich zwei SQL Server-Tabellen basierend auf der Zeilennummer innerlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!