我有两张表,包含轮班员工转发数据
e.g
Table 1
------
ID NAME RELIVERID
------------
20 ABC 56
----------
21 XYZ 57
----------
22 DEF 58
----------
TABLE 2
---------
ID NAME RELIVERID
-------
56 PQR 20
-----
57 STU 21
-----
58 XYZ 21
----
我希望结果在第三个表中包含以下数据
Result Table
-------
ID NAME RELIVERID
---
20 ABC 56
-
56 PQR 20
-
21 XYZ 57
-
57 STU 21
-
22 DEF 58
-
58 XYZ 21
-
第一张表中的一行和第二张表中的备用行
答案 0 :(得分:1)
我的建议是使用row_number函数,将它乘以第一个表的因子,第二个表的因子加1,这样它将大于第一个表中的一个并执行union all。我没有SQL Server实例来测试它,但它应该是这样的:
SELECT (ROW_NUMBER() OVER (ORDER BY ID ASC)) * 100 AS OrderID, * FROM Table1
UNION ALL
SELECT (ROW_NUMBER() OVER (ORDER BY ID ASC)) * 100 + 1 AS OrderID, * FROM Table2
ORDER BY OrderID