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

如何根據行號連接 SQL Server 2008 表?

DDD
DDD原創
2024-12-26 02:29:10719瀏覽

How Can I Join SQL Server 2008 Tables Based on Row Numbers?

在SQL Server 2008 中根據行號連接表

要在ROSQL Server 2008 中對行號執行內部聯接,可以使用RO ()功能開始發揮作用。讓我們考慮一下提供的範例:

表格:

  • 表A: 包含行:RowA、RowB、RowC、RowD
  • 表B:包含行: Row4、Row3、Row2、Row1

所需輸出:

  • RowA Row1
  • >
  • RowC Row3
  • RowD Row4

帶有Order By 子句的解決方案:

要根據行號連接表,請使用帶帶有ORDER BY 的ROW_NUMBER()函數子句:

select A.val,B.val
from(
    SELECT val,row_number() over (order by val) as row_num
    FROM A)A
join
    (SELECT val,row_number() over (order by val) as row_num
    FROM B)B
on  A.row_num=B.row_num
ORDER BY A.val,B.val

輸出:

此查詢將產生所需的輸出:

    RowA1
  • B 行2
  • C行Row3
  • RowD Row4

沒有Order By 子句的解:

如果沒有order by 子句,則分配使用ROW_NUMBER() 函數的行號仍將以任意順序對值進行排序。輸出中的行將以與原始表中相同的順序出現:

select A.val,B.val
from(
    SELECT val,row_number() over (order by (select null)) as row_num
    FROM A)A
join
    (SELECT val,row_number() over (order by (select null)) as row_num
    FROM B)B
on  A.row_num=B.row_num
ORDER BY A.val,B.val

輸出:

此查詢將再次產生所需的輸出,但行的順序可能不同:

    RowA Row4
  • RowB Row3
  • RowC Row2
  • RowD Row1

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

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