Q1输出
DogCnt
101
Q2输出
CatCnt
6
第三季度输出BirdCnt
21
我如何结合两个查询输出来生成这个输出?
Animal Cnt
Dog 101
Cat 6
Bird 21
可以与UNION ALL
:
SELECT Animal = 'Dog', Cnt = DogCnt FROM (<Q1>) AS Q1
UNION ALL
SELECT Animal = 'Cat', CatCnt FROM (<Q2>) AS Q2
UNION ALL
SELECT Animal = 'Bird', BirdCnt FROM (<Q3>) AS Q3;
但是如果所有这些源查询最初来自同一个表,那么绝对有一种更有效的方法来做到这一点(对于细节,您需要提供更多细节,例如表结构是什么以及如何获得这些计数)。
您可以使用多个CTE
:
;WITH Q1 (
<query here>
), Q2 (
<query here>
), Q3 (
<query here>
)
select 'dog' as animal, DogCnt
from q1
union all
select 'Cat' as animal, CatCnt
from q2
union all
select 'Bird' as animal, BirdCnt
from q3;