在 SQL Server 中按行號連接表
在 SQL Server 2008 中,您可以使用 ROW_NUMBER( ) 功能。此函數根據可選的排序規範為表中的每一行分配唯一的序號。
垂直排序連接行的查詢:
連接表 A和 B的行號並保持行的垂直順序,使用以下查詢:
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;
水平排序連接行的查詢:
如果要水平連接行而不排序,請將ORDER BY 子句替換為PARTITION經過子句:
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;
範例:
使用提供的範例表格A 和B,第一個查詢將產生下列輸出:
RowA Row1 RowB Row2 RowC Row3 RowD Row4
第二個查詢將產生此輸出,表示水平連接:
RowA Row4 RowB Row3 RowC Row2 RowD Row1
以上是如何根據行號連接 SQL Server 表並控制順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!