在SQL中追加表

时间:2014-11-13 12:20:56

标签: sql sql-server union

如果我有以下两个表格,

表1

ItemNo  Desc    Order Number    Qty      S_Date     Location
AA       AA         AAA          A     AA/AA/AAAA     AAAA
BB       BB         BBB          B     BB/BB/BBBB     BBBB
CC       CC         CCC          C     CC/CC/CCCC     CCCC

表2

M_Order Item    M_Date      Total
XXX      X      XX/XX/XXXX   XX
YYY      Y      YY/YY/YYYY   YY

有人可以建议我如何获得下表。

结果表

ItemNo  Desc    Order Number    Qty     S_Date    Location   M_Date     Total
AA       AA        AAA           A    AA/AA/AAAA    AAAA        
BB       BB        BBB           B    BB/BB/BBBB    BBBB        
CC       CC        CCC           C    CC/CC/CCCC    CCCC        
X       XXX                                                 XX/XX/XXXX    XX
Y       YYY                                                 YY/YY/YYYY    YY

由于

3 个答案:

答案 0 :(得分:1)

您可以使用full outer join技巧执行此操作:

select t1.*, t2.*
from table1 t1 full outer join
     table2 t2
     on 1 = 0;

这将为您提供两个表中的列。每行将仅使用其中一个表中的值填充。

答案 1 :(得分:0)

使用以下查询加入这两个表。

我认为您希望将两个[( ItemNo和Item )和( Desc和M_Desc )]列的值分别合并到同一列和所有其他列中

SELECT CAST(ItemNo AS VARCHAR(MAX)) AS ItemNo, CAST(Desc AS VARCHAR(MAX)) AS Desc, OrderNumber, Qty, 
       S_Date, Location, NULL AS M_Date, NULL AS Total 
FROM Table1
UNION ALL
SELECT CAST(Item AS VARCHAR(MAX)) AS ItemNo, CAST(M_Order AS VARCHAR(MAX)) AS Desc, NULL AS OrderNumber, NULL AS Qty, 
       NULL AS S_Date, NULL AS Location, M_Date, Total 
FROM Table2

答案 2 :(得分:0)

类似于Gordons的答案,但在SQL中使用星星是最大的NO NO之一。 另外,对于实际的连接部分本身,您需要在唯一列上执行tablename.column = tablename.column。 1 = 0有点模棱两可。但是你得到了图片