Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyertai Dalaman Dua Jadual Pelayan SQL Berdasarkan Nombor Baris?

Bagaimana untuk Menyertai Dalaman Dua Jadual Pelayan SQL Berdasarkan Nombor Baris?

Mary-Kate Olsen
Lepaskan: 2025-01-05 01:36:39
asal
891 orang telah melayarinya

How to Inner Join Two SQL Server Tables Based on Row Number?

Inner Join on Row Number in SQL Server

Objektif: Lakukan cantuman dalaman pada dua jadual menggunakan barisnya nombor.

Senario:

Pertimbangkan dua jadual, A dan B, dengan data berikut:

Table A Table B
RowA Row4
RowB Row3
RowC Row2
RowD Row1

Matlamatnya adalah untuk menyertai jadual berdasarkan nombor baris mereka dan dapatkan yang berikut output:

Table A Table B
RowA Row1
RowB Row2
RowC Row3
RowD Row4

Penyelesaian:

Untuk melakukan cantuman dalaman pada nombor baris, gunakan fungsi ROW_NUMBER() seperti berikut:

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;
Salin selepas log masuk

Pertanyaan ini mencipta jadual sementara untuk setiap jadual input (A dan B) dan memberikan nombor baris kepada setiap baris berdasarkan val lajur. Jadual kemudian digabungkan menggunakan lajur row_num, dan hasilnya diisih mengikut lajur val dalam kedua-dua jadual.

Pertimbangan Tambahan:

  • Jika tiada khusus pesanan dikehendaki, alih keluar klausa ORDER BY daripada fungsi ROW_NUMBER() untuk mengekalkan baris asal pesanan.

SQL Fiddle Demo:

[SQL Fiddle Demo](https://www.sqlfiddle.com/#!18/69540/2 )

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Dalaman Dua Jadual Pelayan SQL Berdasarkan Nombor Baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan