当前位置:首页 > 数据库 > SQL > 正文内容

SQL语句:联合结果集union语句

小道6年前 (2018-08-26)SQL3336

SQL语句:联合结果集union语句

Person表数据:

image.png

在创建一个 临时 表。

create table 临时(ID uniqueidentifier not null,name nvarchar(max),age int,国籍 nvarchar(max),学校 nvarchar(max))
insert into 临时 values(NEWID(),'王钢蛋',24,'中国','无')
insert into 临时 values(NEWID(),'李铁蛋',21,'中国','无')
insert into 临时 values(NEWID(),'王小二',17,'中国','无')
insert into 临时 values(NEWID(),'铁锤',27,'中国','无')
insert into 临时 values(NEWID(),'钱多多',28,'中国','无')
insert into 临时 values(NEWID(),'甄得穷',25,'中国','无')
insert into 临时 values(NEWID(),'付德友',18,'中国','无')
insert into 临时 values(NEWID(),'皮尔',26,'美国','无')
insert into 临时 values(NEWID(),'约翰',23,'美国','无')
insert into 临时 values(NEWID(),'杰克',18,'美国','无')

输出结果:

image.png


使用union命令显示年龄:

select age from Person
union
select age from 临时

输出结果:

image.png

显示16条数据。


使用union all命令显示年龄:

select age from Person
union all
select age from 临时

image.png

显示17条数据。


所以 如果不加上 all ,重复数据只显示一次,两个表内有两个18岁。加上all后则显示全部。


显示两个表内的Email地址。Person这个表内有Email地址,而 临时表内没有Email地址。但是union 输出结果两个表必须一直(包括数据类型也要一直。)。

select name,age,Email from Person --Person表显示有 name,age和Email列。
union all
select name,age,'无email地址' from 临时   --在临时表内要显示 name age 和 Email列,但是 临时表内没有 Email列 所以要 写一个和Email列类型一致的数据。

输出结果:

image.png


查找 Person 表和 临时 表内的最大年龄和最小年龄:

select 'Person表内最大年龄',MAX(age) from Person
union all
select 'Person表内最小年龄',MIN(age) from Person
union all
select '临时表内最大年龄',MAX(age) from 临时
union all
select '临时表内最小年龄',MIN(age) from 临时

输出结果:

image.png


显示临时表中 每个人的年龄和 全部年龄的总和:

select name,age from 临时    --搜索 名字和年龄
union  all
select '总年龄',SUM(age) from 临时  --'总年龄'  是为了对应上面的  名字列,  SUM(age) 是得出总年龄。

输出结果:

image.png

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/70.html

分享给朋友:

“SQL语句:联合结果集union语句” 的相关文章

SQL语句:首先创建一个数据库,在创建一个表并插入数据。

SQL语句:首先创建一个数据库,在创建一个表并插入数据。

首先创建一个数据库,在创建一个表并插入数据:--SQL单行注释是:“--” 多行注释是:“/*...*/” create database sjk;  --创建一个新的数据库。 go  --接着执行下面语句。 use&nbs...

数据的分组:GROUP BY

数据的分组:GROUP BY

数据的分组:GROUP BYGROUP BY子句必须放在WHERE 语句后面。统计出数据表中大于12岁的人数:select COUNT(*) from Person where Age >12输出结果:统计Person 中各个年龄的人...

SQL语句:输出结果限制

SQL语句:输出结果限制

显示年龄前三的 人物信息:select top 3 * from Person order by Age desc输出结果:获取年龄降序排列中的是第3个~5个的数据。select top 3...

SQL语句:过滤重复数据(distinct)

SQL语句:过滤重复数据(distinct)

SQL语句:过滤重复数据先通过ALTER TABLE语句添加 新的列:alter table person add 国籍 nvarchar(max) alter table person add 学校&nbs...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。