Verknüpfen von Tabellen anhand von Zeilennummern in SQL Server 2008
Um einen inneren Join für Zeilennummern in SQL Server 2008 durchzuführen, muss ROW_NUMBER() verwendet werden. Funktion kommt ins Spiel. Betrachten wir das bereitgestellte Beispiel:
Tabellen:
Gewünschte Ausgabe:
Lösung mit einer Order By-Klausel:
Um die Tabellen basierend auf Zeilennummern zu verbinden, verwenden Sie die Funktion ROW_NUMBER() mit einer ORDER BY-Klausel:
select A.val,B.val from( SELECT val,row_number() over (order by val) as row_num FROM A)A join (SELECT val,row_number() over (order by val) as row_num FROM B)B on A.row_num=B.row_num ORDER BY A.val,B.val
Ausgabe:
Diese Abfrage erzeugt die gewünschte Ausgabe:
Lösung ohne Order By Klausel:
Wenn Sie keine order by-Klausel haben, werden die Werte durch Zuweisen der Zeilennummern mit der Funktion ROW_NUMBER() trotzdem in einer willkürlichen Reihenfolge sortiert. Die Zeilen in der Ausgabe werden in der gleichen Reihenfolge ausgegeben wie in den Originaltabellen:
select A.val,B.val from( SELECT val,row_number() over (order by (select null)) as row_num FROM A)A join (SELECT val,row_number() over (order by (select null)) as row_num FROM B)B on A.row_num=B.row_num ORDER BY A.val,B.val
Ausgabe:
Diese Abfrage führt erneut zu einem Ergebnis die gewünschte Ausgabe, aber die Reihenfolge der Zeilen kann abweichen:
Das obige ist der detaillierte Inhalt vonWie kann ich SQL Server 2008-Tabellen basierend auf Zeilennummern verknüpfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!