首頁 > 資料庫 > mysql教程 > 如何根據行號連接 SQL Server 表並控制順序?

如何根據行號連接 SQL Server 表並控制順序?

Susan Sarandon
發布: 2024-12-29 01:54:10
原創
597 人瀏覽過

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

在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板