SQL UNION 的用法中前后两个查询语句所含字段是不是一定要相同?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL UNION 的用法中前后两个查询语句所含字段是不是一定要相同?相关的知识,希望对你有一定的参考价值。

参考技术A 字段名称可以不同,字段数量、数据类型、顺序必须相同。\\x0d\\x0aUNION 操作符用于合并两个或多个 SELECT 语句的结果集。\\x0d\\x0a需要注意的是\\x0d\\x0a1、UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。\\x0d\\x0a2、该命令连接的结果集中有重复的值不会被显示。\\x0d\\x0a想忽略重复值,可以使用 union all。

sql 查询结果合并union all用法_数据库技巧

参考技术A 复制代码
代码如下:
--合并重复行
select
*
from
A
union
select
*
from
B
--不合并重复行
select
*
from
A
union
all
select
*
from
B
按某个字段排序
--合并重复行
select
*
from
(
select
*
from
A
union
select
*
from
B)
AS
T
order
by
字段名
--不合并重复行
select
*
from
(
select
*
from
A
union
all
select
*
from
B)
AS
T
order
by
字段名
//sql
server版
Select
*
From
(
select
top
2
id,adddate,title,url
from
bArticle
where
ClassId=1
order
by
adddate
desc)
A
Union
All
Select
*
From
(
select
top
2
id,adddate,title,url
from
bArticle
where
ClassId=2
order
by
adddate
desc)
B
Union
All
Select
*
From
(
select
top
2
id,adddate,title,url
from
bArticle
where
ClassId=3
order
by
adddate
desc)
C
Union
All
Select
*
From
(
select
top
2
id,adddate,title,url
from
bArticle
where
ClassId=4
order
by
adddate
desc)
D
//mysql版
Select
*
From
(
select
id,adddate,title,url
from
bArticle
where
ClassId=1
order
by
adddate
desc
limit
0,2)
A
Union
All
Select
*
From
(
select
id,adddate,title,url
from
bArticle
where
ClassId=2
order
by
adddate
desc
limit
0,2)
B
Union
All
Select
*
From
(
select
id,adddate,title,url
from
bArticle
where
ClassId=3
order
by
adddate
desc
limit
0,2)
C
Union
All
Select
*
From
(
select
id,adddate,title,url
from
bArticle
where
ClassId=4
order
by
adddate
desc
limit
0,2)
D

以上是关于SQL UNION 的用法中前后两个查询语句所含字段是不是一定要相同?的主要内容,如果未能解决你的问题,请参考以下文章

sql语句里面的union是啥意思

mysql的查询语句union是啥意思

sql server 中union的用法

sql语句union

mysql的查询语句union是啥意思

oracle中union的用法