數據庫中的 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 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!