Heim > Datenbank > MySQL-Tutorial > Wie kann ich SQL Server 2008-Tabellen basierend auf Zeilennummern verknüpfen?

Wie kann ich SQL Server 2008-Tabellen basierend auf Zeilennummern verknüpfen?

DDD
Freigeben: 2024-12-26 02:29:10
Original
715 Leute haben es durchsucht

How Can I Join SQL Server 2008 Tables Based on Row Numbers?

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:

  • Tabelle A: Enthält Zeilen: RowA, RowB, RowC, RowD
  • Tabelle B: Enthält Zeilen: Zeile4, Zeile3, Zeile2, Zeile1

Gewünschte Ausgabe:

  • RowA Row1
  • RowB Row2
  • RowC Row3
  • ZeileD Zeile4

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
Nach dem Login kopieren

Ausgabe:

Diese Abfrage erzeugt die gewünschte Ausgabe:

  • RowA Row1
  • RowB Row2
  • RowC Row3
  • RowD Row4

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
Nach dem Login kopieren

Ausgabe:

Diese Abfrage führt erneut zu einem Ergebnis die gewünschte Ausgabe, aber die Reihenfolge der Zeilen kann abweichen:

  • RowA Zeile4
  • RowB Zeile3
  • RowC Zeile2
  • RowD Zeile1

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage