数据库中的 union 和 union all 是两种毗连体例,此中的一种会去失落反复的成果,别的一种是不会去失落反复值的。那么,到底哪一种会去重呢?本文将为您具体演示
建立一个姑且表,用于演示sqlserver数据库中,union和union all的利用,以及哪一种会去重。假设有一个姑且表,存储一年级的学生名字,此处假设名字不反复
IF OBJECT_ID('tempdb..#tblGrade1') IS NOT NULL DROP TABLE #tblGrade1;
CREATE TABLE #tblGrade1(
StuName varchar(50)
);
建立别的一个姑且表,
IF OBJECT_ID('tempdb..#tblGrade2') IS NOT NULL DROP TABLE #tblGrade2;
CREATE TABLE #tblGrade2(
StuName varchar(50)
);
往姑且表中插入几行测试数据,模拟学生名字,此中两个表中插入一个不异名字的记实
insert into #tblGrade1(StuName) values('张三');
insert into #tblGrade1(StuName) values('李四');
insert into #tblGrade2(StuName) values('王五');
insert into #tblGrade2(StuName) values('张三');
查询姑且表中的测试数据
select * from #tblGrade1;
select * from #tblGrade2;
利用union毗连两个表的学生名称列,从成果可以看出,union的成果,学生名字是不反复的
select StuName from #tblGrade1
union
select StuName from #tblGrade2
利用union all毗连两个表的学生名称列,从成果可以看出,union all的成果,是两个表的所有成果
select StuName from #tblGrade1
union all
select StuName from #tblGrade2
union毗连的两个成果集是会主动去重的;union all是所有记实,反复的也呈现,因为all的意思就是全数,所以,不去重
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!