簡體   English   中英

通過順序添加所有表的數據將兩個表合並為一個表

[英]Join two tables into one by adding data of all tables sequentially

我在將三個具有不同數據的表聯接在一起時遇到問題。 假設我有table1table2像:

table1 :     table2:
ID1         ID2
-----        ----- 
1            102
2            103

我需要將這兩個表加入到table3中:

table3
------
ID1    ID2
---    ---
1      102
2      103

我在表1和表2中應用交叉聯接,但我正在獲取:

table3 :
ID1   ID2
---   ---
1     102
2     102
1     103 
2     103

如果您只是按ID為每個表排序,然后將第一行與第一行進行匹配,則應該可以進行以下操作。

Select T1.ID1
     , T2.ID2
from (Select ID1, row_number() over (order by ID1) rownum from Table1) T1
inner join (Select ID2, row_number() over (order by ID2) rownum from Table2) T2
    on T1.rownum = T2.rownum

它為每個具有行號的表創建一個子查詢,然后對行號進行內部聯接。

如果您的ID並非總是按順序排列,請使用以下命令:

SELECT t1.ID1, T2.ID2
FROM (SELECT ID1, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) rn FROM table1 ) t1
INNER JOIN (SELECT ID2, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) rn FROM table2) t2
    ON t1.rn = t2.rn

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM