union all用法

2026年09月27日 15:53
有3个网友回答
网友(1):

union all用法举例如下:

SELECT * FROM 

(SELECT top 1 left(convert(varchar(100),RECEIVE_TIME,108 ),5) receiveTime, '0' restoreTime,unit_code,unit_name    

FROM T_FILE_RECEIVE_RECORD WHERE UNIT_CODE = '123123' and convert(char(100),RECEIVE_TIME,23)='2018-10-06' ORDER BY RECEIVE_TIME DESC 

) table1 

UNION ALL

SELECT * FROM 

(SELECT top 1  '0' receiveTime, left(convert(varchar(100),RESTORE_TIME,108 ),5) restoreTime,unit_code,unit_name

FROM T_FILE_RESTORE_RECORD WHERE UNIT_CODE = '123123' and convert(char(100),restore_time,23)='2018-10-06' ORDER BY restore_time DESC

) table2

扩展资料:

使用UNION(或者UNION ALL)语句时,如果UNION的两个结果集在单独排序后再拼接,则他们的ORDER BY是失效的。如果我们要进行排序有以下两种方法:

将它们作为子查询再ORDER BY查询一次;在第一个结果集中不使用排序,且不用括号分隔,而在第二个结果集后使用ORDER BY。

参考资料来源:

百度百科-union

百度百科-SQL UNION

网友(2):

union all 操作符用于合并两个或多个 SELECT 语句的结果集,并且不做踢重操作。

用法举例如下:

1、创建测试表,

create table test_uni_a(id varchar2(20),remark varchar2(20));

create table test_uni_b(id varchar2(20),remark varchar2(20));


2、插入测试数据;

insert into test_uni_a values('123', 'abc');

insert into test_uni_a values('456', 'efg');

insert into test_uni_b values('789', 'ABC');

insert into test_uni_b values('000', 'EFG');

commit;

3、查询表中全量数据;select t.*, rowid from test_uni_a t;

4、编写语句,使用UNION ALL将两表联合;

   select * from test_uni_a a

   union all

   select * from test_uni_b b

   

扩展资料

1、UNION ALL操作符用于合并两个或多个 SELECT 语句的结果集。UNION ALL内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

2、UNION与UNION ALL区别

1)、Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

2)、Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

参考资料

Oracle官方文档-UNION ALL

网友(3):