首頁 >資料庫 >mysql教程 >如何根據行號內連接兩個SQL Server表?

如何根據行號內連接兩個SQL Server表?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-05 01:36:39842瀏覽

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

SQL Server 中行號的內聯接

目標:使用兩個表的行執行內聯接

場景:

考慮兩個表 A 和B,其中包含以下資料:

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

目標是加入基於行號的表格並檢索以下內容輸出:

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

解決方案:

解決方案:
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;

解決方案:

    解決方案:
要對行號執行內連接,請使用ROW_NUMBER()函數,如下所示:

此查詢為每個輸入表(A 和 B)建立一個臨時表,並根據 val 列為每行分配行號。然後使用 row_num 列連接表,並按兩個表中的 val 列對結果進行排序。

其他注意事項:如果沒有具體說明如果需要排序,請從ROW_NUMBER() 函數中刪除ORDER BY 子句以保留原始行順序。 SQL Fiddle 示範:[SQL Fiddle 示範](https://www.sqlfiddle.com/#!18/69540/2 )

以上是如何根據行號內連接兩個SQL Server表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn