SQL Server中合并多个查询输出生成汇总表的实现方法
实现方案
在SQL Server中可以通过UNION ALL拼接三个查询的结果,每个子查询手动指定对应的动物类型名称即可,具体写法如下:
通用写法(适配任意Q1/Q2/Q3逻辑)
把你的三个原始查询作为子查询嵌套,分别指定Animal字段的固定值:
SELECT 'Dog' AS Animal, DogCnt AS Cnt FROM ( -- 此处替换为你的Q1完整查询语句 ) AS q1 UNION ALL SELECT 'Cat' AS Animal, CatCnt AS Cnt FROM ( -- 此处替换为你的Q2完整查询语句 ) AS q2 UNION ALL SELECT 'Bird' AS Animal, BirdCnt AS Cnt FROM ( -- 此处替换为你的Q3完整查询语句 ) AS q3
固定值简化写法
如果你的三个查询返回的结果是固定值,可以直接简化为:
SELECT 'Dog' AS Animal, 101 AS Cnt UNION ALL SELECT 'Cat' AS Animal, 6 AS Cnt UNION ALL SELECT 'Bird' AS Animal, 21 AS Cnt
注意:优先使用
UNION ALL而非UNION,后者会额外执行去重逻辑,在当前场景下没有必要,会带来不必要的性能损耗。
内容的提问来源于stack exchange,提问作者Eisen
相关产品推荐
相关产品推荐

