SQL Server’da Satırları Gruplayıp Yanyana Yazdırma

Veritabanında sorgulama yaparken bazen dikey olarak satır satır gelen verileri yatay olarak virgül ile birleştirerek yazdırmak isteriz.

Basit bir örnek verecek olur isek örneğin iller tablomuz var 81 satır.

1

Bir de ilçeler tablomuz var o da 911 satır.

2

Standart sql bilgimiz ile biz bu tabloları alt alta birleştirebiliriz. Yani aşağıdaki gibi.

3

Oysa biz şöyle bir sonuç almak isteyebiliriz bazı durumlarda.

4

İşte bu yazıda bunun nasıl yapıldığından bahsediyor olacağım.

Bir select sorgusunun sonucunu xml olarak görebiliriz. Bunun için for xml path komutunu kullanırız.

5

Burada sonuç xml olarak gelir. Yani aşağıdaki gibi.

6

SELECT Convert(varchar,isim+’,’) FROM ilceler for xml path(”)

Dediğimizde aşağıdaki gibi virgül ile yanyana yazdırılan değerler görürüz.

7

select *,

(select convert(varchar,isim+’,’) from ilceler where il_no=iller.il_no FOR XML PATH(”)) as ILCELER

from iller

 

dediğimizde ise aşağıdaki gibi istediğimiz sonucu elde ederiz.

8