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;
解決方案:
此查詢為每個輸入表(A 和 B)建立一個臨時表,並根據 val 列為每行分配行號。然後使用 row_num 列連接表,並按兩個表中的 val 列對結果進行排序。
其他注意事項:如果沒有具體說明如果需要排序,請從ROW_NUMBER() 函數中刪除ORDER BY 子句以保留原始行順序。 SQL Fiddle 示範:[SQL Fiddle 示範](https://www.sqlfiddle.com/#!18/69540/2 )以上是如何根據行號內連接兩個SQL Server表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!