0

我有几个查询(20+),它们都返回以下三列:

Building | Room | Other

所有这些都是文本字段。我想接受所有这些查询并将它们组合起来;所以我想看看查询整体返回了什么。

例如,如果我有一个查询SELECT Building, Room, Other FROM tblOne WHERE Room=10SELECT Building, Room, Other FROM tblOne WHERE Building=20,我如何将这两者合二为一?显然,这是一个非常简单的示例,而我的实际查询要复杂得多,因此将它们写为 1 个查询是不可行的。

我希望上面的示例输出:

Building | Room | Other
```````````````````````
20       |  1   | Some Stuff
20       | 10   | Some More
5        | 10   | Some Other
15       | 10   | Some Extra
20       |  5   | Some Text

我尝试过的所有方法都出现了“建筑物、房间和其他可能引用不止一张桌子”的错误(也就是它不想将它们组合在一个标题下)。解决此问题的 SQL 语法是什么?

4

2 回答 2

2
  SELECT Building, Room, Other FROM tblOne WHERE Room=10 
  UNION ALL
  SELECT Building, Room, Other FROM tblOne WHERE Building=20
于 2012-06-26T18:31:50.120 回答
0

像这样在 UNION ALL && UNION 的帮助下组合这两个查询

查询 1

SELECT Building, Room, Other FROM tblOne WHERE Room=10 
UNION ALL
SELECT Building, Room, Other FROM tblOne WHERE Building=20

查询 2

SELECT Building, Room, Other FROM tblOne WHERE Room=10 
UNION
SELECT Building, Room, Other FROM tblOne WHERE Building=20

注意

UNION 运算符用于组合两个或多个 SELECT 语句的结果集。

UNION 中的每个 SELECT 语句必须具有相同数量的列。这些列还必须具有相似的数据类型。此外,每个 SELECT 语句中的列的顺序必须相同。

默认情况下,UNION 运算符仅选择不同的值。要允许重复值,请使用 UNION ALL。

于 2012-06-26T18:36:12.730 回答