同时执行2个SQL select语句,并将结果作为一组返回

时间:2014-07-04 10:32:54

标签: sql-server

我试图从各种源表返回数据的时间线,理想情况下我希望第一个语句与最后一个语句同时开始执行。可以在SQL Management studio中完成吗? 我可以强制第二个和第三个select语句与第一个语句同时运行吗?

SELECT ACTIVITY_DATE, ACTIVITY_TYPE
FROM TABLE_A

SELECT ACTIVITY_DATE, ACTIVITY_TYPE
FROM TABLE_B

SELECT ACTIVITY_DATE, ACTIVITY_TYPE
FROM TABLE_C

我可能会在单独的CTE中输出结果,然后在最后将它们组合起来以创建发生时间的时间表。

我的期望是,这将花费更少的时间来运行顺序。

我已经找到了答案,而我所见过的最接近的是一种即时创建和运行作业的方法,但我看不出如何使用该方法获取数据集。

感谢任何想过这个的人。

2 个答案:

答案 0 :(得分:0)

您可以使用UNION组合结果,如果这是您之后的结果:

SELECT ACTIVITY_DATE, ACTIVITY_TYPE
FROM TABLE_A
UNION
SELECT ACTIVITY_DATE, ACTIVITY_TYPE
FROM TABLE_B
UNION
SELECT ACTIVITY_DATE, ACTIVITY_TYPE
FROM TABLE_C

这将返回一个表,其中每个SELECT的结果相互附加。它只需要在每个SELECT中匹配列。

参考:

UNION (Transact-SQL)

  

将两个或多个查询的结果合并到一个结果集中   包括属于union中所有查询的所有行。   UNION操作与使用组合列的连接不同   从两张桌子。

     

以下是组合的基本规则   使用UNION的两个查询的结果集:

     
      
  • 数量和顺序   所有查询中的列必须相同。
  •   
  • 数据类型必须是   兼容。
  •   

答案 1 :(得分:0)

在您的查询之间使用UNION

SELECT ACTIVITY_DATE, ACTIVITY_TYPE
FROM TABLE_A

UNION

SELECT ACTIVITY_DATE, ACTIVITY_TYPE
FROM TABLE_B

UNION

SELECT ACTIVITY_DATE, ACTIVITY_TYPE
FROM TABLE_C