如何从两个表中选择备用行

时间:2013-12-09 13:15:14

标签: sql sql-server linq

有两个表,我想显示两个表中备用行的结果,就像UNION ALL一样。

您能帮我找一下MS SQL Server查询中的解决方案吗?

Table1的记录:

id - value
-------------
 1 - abc
 4 - dce
 9  - fgh
 16 - ijk 
 25 - lmn 

Table2的记录:

id - value
-------------
 5 - opq
 10 - rst
 15 - uvw
 20 - xyz 
 25 - zab 

我想要的结果:

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

----------------

1 个答案:

答案 0 :(得分:4)

我认为这会为您完成,但您必须更改查询并在ORDER BY子句的OVER语句中添加表名和列名。

另外,请注意,两个表必须具有相同的列数和相同的数据类型才能使它们在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