Sql使用来自两个不同表的备用行创建表

时间:2016-10-13 05:44:36

标签: sql-server

我有两张表,包含轮班员工转发数据

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
-

第一张表中的一行和第二张表中的备用行

1 个答案:

答案 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