SQL Server ‘da Birden Çok Satırdaki Değerleri Tek Sütunda Yan Yana Getirme(STRING_AGG Kullanımı)


Merhaba,

İhtiyaçlarımız gereği bazen verilerimizi tek sütunda göstermemiz gerekebiliyor. Özellikle raporlarda datayı satır bazında çoklama yapmaması için ya da tek bir satırda ve sütunlarda tüm verileri görebilmek için ihtiyacımız olabilir. Bu ihtiyacımızı karşılaması için STRING_AGG işlevi ihtiyacımızı görmektedir. Ancak STRING_AGG kullanabilmek için SQL Server 2017 ve daha üst bir sürümü olması gerekmektedir.

Örnek Çalışma;

Mevcutta Öğrencilerin notlarının olduğu bir data mevcut. Burada göreceğiniz üzere her bir öğrenci için 3’er satır bulunmakta. Dersler ve notlar sütunundan kaynaklı datamız satır bazında çoklama yapmış. Burada tabi ki pivot yapıp Dersleri ayrı sütunlara bölüp notlarını ayrı sütunlarda göstererek de datamızı tekilleştirebilirdik. Ancak bu örneğimizde STRING_AGG işlevini göreceğimiz için bu şekilde bir çalışma yapmayacağız.

Tek bir sütunda virgülle ayırarak ya da istediğimiz ayraçları kullanarak değerlerimizi yan yana getirebiliriz.

Kullanımı çok basit. İşlev 2 parametre almaktadır. Birincisi “notlar” yazan Kısıma birleştirme yapacağını alanı yazıyoruz yani expression alanını. İkinci parametre ise separator alanı. Yani birleştirilecek değerleri ne ile ayırmak istiyorsanız onu yazmanız gerekiyor. ORDER BY ID alanı ile de ID ye göre sıralamakta. Tabi Group by ile kullanılması gerekmektedir. Gruplayıp birleştirme işlemi yaptığı için.

Eğer isterseniz başına sabit bir ifade ekleyipte kullanabilirsiniz.

Sorgunun tam hali aşağıdaki gibidir;

Eğer isterseniz aşağıdaki şekilde de kullanabilirsiniz;

Çıktısı;


Bir cevap yazın

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