TSql – Union ve Union All Kullanimi ve Farklari
Union Operatörü
Union operatörü iki veya daha çok select sorgusunun döndürdügü veri kümelerini birlestirmek için kullanilir.
Bu operatörü kullanirken, her bir select sorgusundan dönen kümenin ayni kolon sayisina sahip olmalaridir. Ayrica kolonlarin veri tipleride ve kolonlarin siralarida ayni olmalidir.
Union Operatörün Kullanim Sekli
UNION
SELECT column_name(s) FROM table_name2
Union Operatörü select sonucu dönen tüm kümelerdeki verileri tekillestirerek birlestirir. Yani iki select sorgusundada Sadece Ad kolonu oldugunu düsünürsek, Iki sorgudanda gelen Ahmet isimleri tekillestirildiginden union isleminden sonra sadece tek bir Ahmet kalacaktir.
Eger select sorgularindan dönen kayirlari tekillestirmek istemiyorsaniz union yerine union all operatörünü kullanmalisiniz.
Union All Operatörün Kullanim Sekli
UNION all
SELECT column_name(s) FROM table_name2
Union veya Union all operatorü ile çekilen kayitlarda kolon isimleri her zaman ilk selectdeki kolon isimleri ile ayni olur. Diger selecy ifadelerinde kolon isimleri farkli olsa bile bu gözardi edilir.
Örnekler:
Örnekler için Kisi1 ve Kisi2 adli iki adet tablo olusturup içine kayitlar atacagiz. Bunu için asagidaki sorgulari çalistirin.
create table Kisi1 create table Kisi2
(
ID int,
Ad varchar(20),
Soyad varchar(20)
)
insert into Kisi1(ID,Ad,Soyad) values (1,'Sabri','KUNT'),(2,'Ahmet','TANRIVERDI'),
(3,'Ihsan','ÖLMEZ'),(4,'Ali','RÜZGAR'),(5,'Mesut','ATESER')
(
ID int,
Ad varchar(20),
Soyad varchar(20)
)
insert into Kisi2(ID,Ad,Soyad) values (1,'Sabri','KUNT'),(2,'Ahmet','TANRIVERDI'),
(3,'Metin','TOSUN'),(4,'Ali','AYDOGAN'),(5,'Ali','KALFA')
Iki tablodanda ayri ayri select sorgusu çektigimizde asagidaki kayitlar gelir.
ID | Ad | Soyad |
---|---|---|
1 | Sabri | KUNT |
2 | Ahmet | TANRIVERDI |
3 | Ihsan | ÖLMEZ |
4 | Ali | RÜZGAR |
5 | Mesut | ATESER |
ID | Ad | Soyad |
---|---|---|
1 | Sabri | KUNT |
2 | Ahmet | TANRIVERDI |
3 | Metin | TOSUN |
4 | Ali | AYDOGAN |
5 | Ali | KALFA |
Simdi bu 2 sorguyu union operatörü ile birlestirerek sonucu görelim.
union
select * from Kisi2
ID | Ad | Soyad |
---|---|---|
1 | Sabri | KUNT |
2 | Ahmet | TANRIVERDI |
3 | Ihsan | ÖLMEZ |
3 | Metin | TOSUN |
4 | Ali | RÜZGAR |
4 | Ali | AYDOGAN |
5 | Mesut | ATESER |
5 | Ali | KALFA |
Simdi ise ayni sorgulari Union all ile birlestirip farki görelim.
union all
select * from Kisi2
ID | Ad | Soyad |
---|---|---|
1 | Sabri | KUNT |
1 | Sabri | KUNT |
2 | Ahmet | TANRIVERDI |
2 | Ahmet | TANRIVERDI |
3 | Ihsan | ÖLMEZ |
3 | Metin | TOSUN |
4 | Ali | RÜZGAR |
4 | Ali | AYDOGAN |
5 | Mesut | ATESER |
5 | Ali | KALFA |
Union ile birlestirdigimizde sonuç olarak Sabri KUNT ve Ahmet TANRIVERDI kayitlari sadece bir kez gelmistir, Çünkü Union operatörü kayitlari tekillestirmistir.
Union All operatöründe ise kayitlar oldugu gibi birlestirilmis ve bunun sonucunda da Sabri KUNT ve Ahmet TANRIVERDI ye ait kayitlar iki kez gösterilmistir.
sQL SERVERDA KULLANILANVERITÜRLARIVE FARKLARI NELERDIR ZAHMET OLACAK AMA BULANLAR BANA YARDIMCI OLABILIRMI