在这种情况下,您没有提到任何将定义顺序的列
value
列用于添加排序,使用
ROW_NUMBER()
.
-
CTE表1_with_rown和表2_with_rownum将分配顺序。
-
然后根据rownum连接这些数据集,以保持顺序,并联合结果集以删除任何重复项。
Fiddle
WITH table1_with_rownum AS (
SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rownum
FROM table1
),
table2_with_rownum AS (
SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rownum
FROM table2
)
SELECT
t1.value AS value1,
t2.value AS value2
FROM table1_with_rownum t1
LEFT JOIN table2_with_rownum t2 ON t1.rownum = t2.rownum
UNION
SELECT
t1.value AS value1,
t2.value AS value2
FROM table1_with_rownum t1
RIGHT JOIN table2_with_rownum t2 ON t1.rownum = t2.rownum
ORDER BY value1;
输出