SQL UNION
UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 UNION ALL 和 UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2< UNION 操作符选取不同的值。如果允许重复的值,请使用>
SQL UNION ALL 语法
SELECT column_name(s) FROM table_name1UNION ALLSELECT column_name(s) FROM table_name2另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
--合并重复行
select * from A
union
select * from B
--不合并重复行
select * from A
union all
select * from B
按某个字段排序--合并重复行
select *from (select * from Aunion select * from B) AS Torder by 字段名--不合并重复行select *from (select * from Aunion allselect * from B) AS Torder by 字段名
//sql server版
Select * From (select top 2 id,adddate,title,url from bArticle where ClassId='1' order by adddate desc) AUnion AllSelect * From (select top 2 id,adddate,title,url from bArticle where ClassId='2' order by adddate desc) BUnion AllSelect * From (select top 2 id,adddate,title,url from bArticle where ClassId='3' order by adddate desc) CUnion AllSelect * From (select top 2 id,adddate,title,url from bArticle where ClassId='4' order by adddate desc) D
在DB2里使用union时一定要注意相对应的字段一定是数据类型一样,输出时可以任意显示的列,但不能输出不同类型或不同表结构。因为这样会出错。
//mysql版
Select * From (select id,adddate,title,url from bArticle where ClassId='1' order by adddate desc limit 0,2) AUnion AllSelect * From (select id,adddate,title,url from bArticle where ClassId='2' order by adddate desc limit 0,2) BUnion AllSelect * From (select id,adddate,title,url from bArticle where ClassId='3' order by adddate desc limit 0,2) CUnion AllSelect * From (select id,adddate,title,url from bArticle where ClassId='4' order by adddate desc limit 0,2) D
页:
[1]