SQL拼接结果集数据
有时需要将两次或多次查询出来的结果集合并,这时就可以⽤到union,请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
例如现在有两个结果集:
SELECT b_id,b_name FROM sys_ag_base_bill WHERE b_orgId='10000002322593' AND b_placeOfOrigin='海南'
SELECT b_id,b_name FROM sys_ag_base_bill WHERE b_placeOfOrigin='⼴东' AND b_type IN ('⾃有','收购')sql中union多表合并
那么要将两个结果集合并只需要在中间加上UNION
SELECT b_id,b_name FROM sys_ag_base_bill WHERE b_orgId='10000002322593' AND b_placeOfOrigin='海南' UNION SELECT b_id,b_name FROM sy s_ag_base_bill WHERE b_placeOfOrigin='⼴东' AND b_type IN ('⾃有','收购')
如果你想可以出现重复的那么就使⽤UNION ALL。
当然如果你不使⽤UNION 或者UNION ALL也可以这样写:
SELECT b_id,b_name FROM sys_ag_base_bill WHERE b_id IN(SELECT b_id FROM sys_ag_base_bill WHERE b_orgId='10000002322593' AND b_place OfOrigin='海南') or b_id IN(SELECT b_id FROM sys_ag_base_bill WHERE b_placeOfOrigin='⼴东' AND b_type IN ('⾃有','收购'))
⽬的⼀样也达到了,但是不难看出⽤UNION 操作符写法更加简洁,检索速度更快。⽽且使⽤UNION 操作符会默认将前⾯⼀个结果集的数据放在前⾯排序。
甚⾄可以利⽤他来将两个相同列的表合并成⼀个表或视图。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论