MS SQL Unpivot Kullanımı


MS SQL Unpivot Kullanımı

Unpivot, sütun halinde gelinde veriyi satır bazına çevirir. Verileri analiz ederken ya da farklı ihtiyaçlarımız doğrultusunda sütun olarak gönderilen ya da veritabanında olan verileri satır bazında göstermemiz gerekebilir. Bu nedenle SQL de çok kullanılır.

SQL Server Unpivot Kullanımı Videolu Anlatım

SQL Unpivot söz dizimi aşağıdaki şekildedir;

  • HedefSütunAdı: Sonuçta elde etmek istediğiniz sütunun adını belirtir. Bu sütun, dönüştürülen sütun adlarına karşılık gelecektir.
  • DönüştürülenSütunAdı: Kaynak tablodaki dönüştürülecek sütunların adlarını belirtir.
  • Değer: Dönüştürülen sütunların değerlerini temsil eder.
  • SabitSütunAdı: Dönüştürülen sütunlar dışında kalan sabit sütunun adını belirtir.
  • DönüştürülecekSütun1, DönüştürülecekSütun2, …: Kaynak tablodaki dönüştürmek istediğiniz sütunları belirtir.
  • TabloAdı: İşlem yapmak istediğiniz kaynak tablonun adını belirtir.
  • KaynakTablo: İşlem yapılacak kaynak tabloyu geçici bir adla temsil eder.
  • DönüştürülmüşTablo: Sonuç olarak elde edilen dönüştürülmüş tabloyu temsil eder.

MS SQL Unpivot Kullanımı (Örnek Çalışma)

Örneğin aşağıdaki şekilde sütun bazlı notların bulunduğu 20 satırlık bir verimiz var.

Biz bu verileri satır bazlı olarak dönüştürmek istediğimiz de aşağıdaki şekilde kodları yazıyoruz.

 

Öncelikle kırmızı ile belirttiğim alanı sorgu ekranında tablomuzu normal bir select sorgusunu yazabiliriz. Sonrasında siyah font ile belirttiğim alanda bunu bir subquery içerisine alıp, subquery’imize bir takma isim ( as ) veriyoruz. Subquery altına maviyle belirttiğim Unpivot‘u yazıyoruz. Unpivot içerisinde ki notlar ve sutunlar adına istediğinizi yazabilirsiniz. Bu yazdığınız alanları siyah font ile olan select sorgusunda eklememiz gerekiyor. notlar kısmı değeri belirtiyor. Yani bizim bu örneğimizde notları belirtmekte. sutunlar alanı hangi sütunları satıra çevireceksek “sutunlar in ()” parantezin içerisine virgülle ayırarak tablomuzdaki ilgili sütun isimlerini yazıyoruz. Ben burada MatematikNot, IngilizceNot ,FenNot’larını satır bazına çevirmek istediğim için ilgili alanları yazıyorum. Ve sonrasında bir takma ad vererek sorgumuzu tamamlamış oluyoruz.

İlk öğrenirken adım adım yazarsanız sonradan öğrenilmesi ve akılda kalması çok daha kolay olmakta ve tabi ki en önemlisi bu örnek üzerinden kendiniz bir tablo yaratıp, bu tablo üzerinden pratik yapmanız gerekiyor.

Sorgu çıktımız;

Not; Bazı yerlerde chatgpt üzerinden yardım alınmıştır.


Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir