在存储过程中连接两个sql语句 - (没有相同的列)

时间:2013-04-08 22:49:59

标签: sql-server-2008 select stored-procedures

我的情况是处理具有不同列的两组数据。我知道我可以使用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

1 个答案:

答案 0 :(得分:1)

那叫做UNION;只需手动将“,NULL”添加到第二个查询中的选择列表

根据需要添加尽可能多的内容,无论您需要它们。如果两个表中都需要其他列,则必须使用相应的列名对第一个表中的NULL实例进行别名。