六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 56|回复: 0

SQL UNION

[复制链接]

升级  10%

15

主题

15

主题

15

主题

秀才

Rank: 2

积分
65
 楼主| 发表于 2013-1-13 18:48:48 | 显示全部楼层 |阅读模式
UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 UNION ALLUNION 不同之处在于 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 

 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表