SQL UNION 和 UNION ALL 操作符

本文详细解释了SQL UNION操作符的功能,包括其语法、如何避免重复值以及如何使用UNIONALL。通过一个具体示例展示了如何在查询中使用UNION,包括筛选条件和分组操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法,SELECT column_name(s) FROM table_name1
  UNION
SELECT column_name(s) FROM table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
  SQL UNION ALL 语法
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
下面演示一个UNION实例和实例操作后显示数据
select max(dr.ScriptName) as 分类汇总,
sum(dr.ExecuteTrimLenght) as 业务函数总用时,
sum(dr.ExecuteTrimLenght) as 业务函数成功总用时,
0 as 业务函数失败总用时,

dr.IsSucceed as 成功与否
                                        from ScriptExecuteDetailResult as dr left join  ScriptExecuteResut as er on (dr.ser_id = er.id) left join
                                        TaskExecuteResult as ter on (er.ter_id = ter.id) left join 
                                        TaskOrders as eor on (ter.taskOrders_id = eor.id) left join ExecuteResult as er on (dr.ID = er.CaseId)
                                        where dr.isDel = 0  and dr.IsSucceed <> 'ON' 
                                        group by dr.ScriptName

union 
select max(dr.ScriptName) as 分类汇总,
sum(dr.ExecuteTrimLenght) as 业务函数总用时,
sum(dr.ExecuteTrimLenght) as 业务函数成功总用时,
0 as 业务函数失败总用时,

dr.IsSucceed as 成功与否
                                        from ScriptExecuteDetailResult as dr left join  ScriptExecuteResut as er on (dr.ser_id = er.id) left join
                                        TaskExecuteResult as ter on (er.ter_id = ter.id) left join 
                                        TaskOrders as eor on (ter.taskOrders_id = eor.id) left join ExecuteResult as er on (dr.ID = er.CaseId)
                                        where dr.isDel = 0  and dr.IsSucceed <> 'ON' 
and IsSucceed = '成功'
                                        group by dr.ScriptName

union 
select max(dr.ScriptName) as 分类汇总,
sum(dr.ExecuteTrimLenght) as 业务函数总用时,
0 as 业务函数总用时成功,
sum(dr.ExecuteTrimLenght) as 业务函数失败总用时,

dr.IsSucceed  as 成功与否
                                        from ScriptExecuteDetailResult as dr left join  ScriptExecuteResut as er on (dr.ser_id = er.id) left join
                                        TaskExecuteResult as ter on (er.ter_id = ter.id) left join 
                                        TaskOrders as eor on (ter.taskOrders_id = eor.id) left join ExecuteResult as er on (dr.ID = er.CaseId)
                                        where dr.isDel = 0  and dr.IsSucceed <> 'ON' 
and IsSucceed = '失败'
                                        group by dr.ScriptName

转载于:https://www.cnblogs.com/lqsilly/archive/2013/03/29/2989552.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值