例:
表格1:
Column1 Column2
----------- -------------
A 1
B 2
D 3
E 4
Run Code Online (Sandbox Code Playgroud)
表2:
Column3 Column4
----------- -------------
A 7
E 9
Z 5
Run Code Online (Sandbox Code Playgroud)
预期产量:
Column1 Column2 Column3 Column4
----------- ------------- ------------- -------------
A 1 A 7
B 2 E 9
D 3 Z 5
E 4 NULL NULL
Run Code Online (Sandbox Code Playgroud)
我想要如图所示的输出。
如果有两个表的列分别为Column1,Coumn2和Column3,Column4,则预期输出应为不带任何联接的Column1,Column2,Column3,Column4。它应该只是Table2在Table1的右侧。如果行数不匹配,则Null值将占用空间。
您可以使用ROW_NUMBER窗口函数创建一个计算字段,该字段可用于将两个表连接在一起:
SELECT t1.Column1, t1.Column2, t2.Column3, t2.Column4
FROM (
SELECT Column1, Column2,
ROW_NUMBER() OVER (ORDER BY Column1) AS rn
FROM Table1) AS t1
FULL OUTER JOIN (
SELECT Column3, Column4,
ROW_NUMBER() OVER (ORDER BY Column3) AS rn
FROM Table2) AS t2
ON t1.rn = t2.rn
Run Code Online (Sandbox Code Playgroud)
如果FULL OUTER JOIN有一个Table1或Table2更多行,则必须使用A。
| 归档时间: |
|
| 查看次数: |
18146 次 |
| 最近记录: |