如何从两个表中选择交替行

Moh*_*zer -1 sql linq sql-server

有两个表,我想显示两个表中交替行的结果,就像UNION ALL.

你能帮我在 MS SQL Server 查询中找出解决方案吗?

的记录Table1

id - value
-------------
 1 - abc
 4 - dce
 9  - fgh
 16 - ijk 
 25 - lmn 
Run Code Online (Sandbox Code Playgroud)

的记录Table2

id - value
-------------
 5 - opq
 10 - rst
 15 - uvw
 20 - xyz 
 25 - zab 
Run Code Online (Sandbox Code Playgroud)

我想要的结果:

Id - value 
-----------
 1 - abc
 5 - opq
 15 - uvw
 9  - fgh
 15 - uvw
 20 - xyz 
 16 - ijk 
 25 - lmn 
 25 - zab 

----------------
Run Code Online (Sandbox Code Playgroud)

Rad*_*hiu 6

我认为这对您有用,但是您必须更改查询并ORDER BYOVER子句的语句中添加您的表名和列名。

另外,请注意,您的两个表必须具有相同数量的列和相同的数据类型,以便它们在UNION.

SELECT
    ROW_NUMBER() OVER (ORDER BY column),
    1 AS 'rowOrder',
    *
FROM TABLE1

UNION ALL

SELECT
    ROW_NUMBER() OVER (ORDER BY column),
    2 AS 'rowOrder',
    *
FROM TABLE2
ORDER BY 1, 2
Run Code Online (Sandbox Code Playgroud)