MS-SQL Pivot ile Satırları Sütunlara Aktarma (Transpose)
- 64
- (1)
- (5)
- 20 Haz 2017
Pivot işlemini bir örnek ile uygulamak için aşağıdaki gibi bir tablo oluşturun.
create table tabloFiyatlar
(UrunAdi nvarchar(50), Sube nvarchar(50), Fiyat money)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Ekran Kartı', 'Istanbul', 450.89)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Ekran Kartı', 'Ankara', 488.98)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Ekran Kartı', 'Antalya', 501.14)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'İşlemci', 'Istanbul', 650.45)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'İşlemci', 'Ankara', 660.45)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'İşlemci', 'Antalya', 680.45)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Klavye', 'Istanbul', 110.00)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Klavye', 'Ankara', 118.00)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Klavye', 'Antalya', 105.00)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Mouse', 'Istanbul', 54.99)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Mouse', 'Ankara', 87.99)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Mouse', 'Antalya', 78.45)
select * from tabloFiyatlar
select
sorgusu ile tablo çıktısı aşağıdaki gibi karşınıza gelecektir.
Aşağıdaki komut ile tabloFiyatlar
içerisindeki her şube değerini birer sütun haline getirip, her şubeye karşılık gelen ortalama fiyat bilgisini alabilirsiniz.
select * from (
select UrunAdi, Sube, Fiyat from tabloFiyatlar
) as tablo
pivot(avg(Fiyat)
for Sube in ([Istanbul], [Ankara], [Antalya]))
as pivotTablo
Sonuç aşağıdaki gibi olacaktır.
İlişkili İçerikler
Bir tablodan satırları çekerken belli sayıda satırı atlayıp, belli sayıda satırı alarak projelerinizde sayfalama(pagination) gibi işlemleri kolaylaştırabilirsiniz.