So führen Sie einen Inner Join für die Zeilennummer in SQL Server durch
Im Bereich der SQL Server-Programmierung stellt sich die Frage nach der Durchführung Es kommt häufig zu einer inneren Verknüpfung der Zeilennummer. Dieser Artikel befasst sich mit dem Thema und bietet Lösungen, die Ihnen dabei helfen, die gewünschten Ergebnisse zu erzielen.
Um die Herausforderung zu veranschaulichen, betrachten Sie zwei Tabellen, A und B, die jeweils eine Liste von Werten enthalten, die von oben nach unten geordnet sind:
Das Ziel besteht darin, eine innere Verknüpfung der beiden Tabellen durchzuführen und Zeilen anhand ihrer Zeilennummern abzugleichen. Standardmäßig bietet SQL Server keine native Möglichkeit, Tabellen anhand von Zeilennummern zu verknüpfen. Mit der Funktion ROW_NUMBER() können wir jedoch eine virtuelle Spalte erstellen, die jeder Zeile in jeder Tabelle eine eindeutige Zeilennummer zuweist.
Um einen Inner Join für Zeilennummern in SQL Server 2008 durchzuführen, können Sie verwenden die folgenden Schritte:
-- Create a virtual column with row numbers for Table A SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num FROM A -- Create a virtual column with row numbers for Table B SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num FROM B -- Join the two tables on the row number virtual columns SELECT A.val, B.val FROM ( SELECT val, row_num FROM A ) AS A INNER JOIN ( SELECT val, row_num FROM B ) AS B ON A.row_num = B.row_num ORDER BY A.val, B.val
Diese Abfrage gibt die folgende Ausgabe zurück:
Durch den Abgleich der Zeilennummern haben wir die beiden Tabellen erfolgreich miteinander verbunden.
Alternativ können Sie, wenn Sie keine spezifische Order-by-Anforderung haben, das gleiche Ergebnis auch ohne explizite Reihenfolge erzielen Sortieren der Tabellen:
-- Create a virtual column with row numbers for Table A SELECT val, ROW_NUMBER() OVER () AS row_num FROM A -- Create a virtual column with row numbers for Table B SELECT val, ROW_NUMBER() OVER () AS row_num FROM B -- Join the two tables on the row number virtual columns SELECT A.val, B.val FROM ( SELECT val, row_num FROM A ) AS A INNER JOIN ( SELECT val, row_num FROM B ) AS B ON A.row_num = B.row_num ORDER BY A.row_num
Diese Abfrage gibt die Zeilen in der Reihenfolge zurück, in der sie ausgegeben werden:
Das obige ist der detaillierte Inhalt vonWie führe ich einen Inner Join basierend auf Zeilennummern in SQL Server durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!