0

我有一种情况,它处理具有不同列的两组数据。我知道我可以使用 UNION 但 UNION 要求两个表中的表达式数量相等。我试图在我的存储过程中加入这两个语句。第一条语句有一个额外的列“位置”

Select 
  TableA.Name,
  TableB.Occupation,
  TableA.Location,
  'Group1' AS [groupBy]
From
 TableA,
 TableB
Where
 TableA.ID = 1

Select 
  TableA.Name,
  TableB.Occupation,
  'Group2' AS [groupBy]
From
 TableA,
 TableB
Where
 TableB.ID = 10

我的结果应该是这样的

Name    Occupation      GroupBy   Location
David   Doctor          Group1    USA
John    Pilot           Group1    Asia
Dwayne  Wrestler        Group2    NULL
Axel    RockStar        Group2    NULL 

我的表结构

Table A

ID Name  Occupation Location 
1  David Doctor     USA
1  John  Pilot      Asia
2  Mike  Clerk      Europe


Table B 

ID  Name   Occupation
3   Wayne  Writer
4   Shane  Publisher
10  Dwayne Wrestler
10  Axel   Rockstar
4

1 回答 1

1

这称为UNION;只需在第二个查询中手动将“,NULL”添加到选择列表中

根据需要添加任意数量的它们,无论您在哪里需要它们。如果您需要两个表中的其他列,则第一个表中的 NULL 实例必须使用适当的列名作为别名。

于 2013-04-10T21:22:34.317 回答