Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyertai Jadual Pelayan SQL Berdasarkan Nombor Baris dan Susunan Kawalan?

Bagaimanakah Saya Boleh Menyertai Jadual Pelayan SQL Berdasarkan Nombor Baris dan Susunan Kawalan?

Susan Sarandon
Susan Sarandonasal
2024-12-29 01:54:10625semak imbas

How Can I Join SQL Server Tables Based on Row Number and Control Ordering?

Menyertakan Jadual pada Nombor Baris dalam SQL Server

Dalam SQL Server 2008, anda boleh melakukan sambung dalaman pada nombor baris menggunakan ROW_NUMBER( ) fungsi. Fungsi ini memberikan nombor jujukan yang unik kepada setiap baris dalam jadual, berdasarkan spesifikasi pengisihan pilihan.

Pertanyaan untuk Menyusun Baris Bercantum Menegak:

Untuk menyertai jadual A dan B pada nombor baris mereka dan mengekalkan susunan menegak baris, gunakan yang berikut pertanyaan:

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;

Pertanyaan untuk Susunan Mendatar Baris Bercantum:

Jika anda ingin menyertai baris secara mendatar, tanpa mengisih, gantikan klausa ORDER BY dengan PARTITION OLEH klausa:

SELECT A.val, B.val
FROM (
    SELECT val, ROW_NUMBER() OVER (PARTITION BY 1) AS row_num
    FROM A
) AS A
JOIN (
    SELECT val, ROW_NUMBER() OVER (PARTITION BY 1) AS row_num
    FROM B
) AS B
ON A.row_num = B.row_num;

Contoh:

Menggunakan jadual sampel A dan B yang disediakan, pertanyaan pertama akan menghasilkan output berikut:

RowA Row1
RowB Row2
RowC Row3
RowD Row4

Pertanyaan kedua akan menghasilkan output ini, mewakili gabungan mendatar:

RowA Row4
RowB Row3
RowC Row2
RowD Row1

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyertai Jadual Pelayan SQL Berdasarkan Nombor Baris dan Susunan Kawalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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