MSSQL – Çoklu satırdan tek kolona

Selamlar,

Gene aylar yıllar oldu hiçbir notumu bile buraya aktaramadım. Hazır vakit bulmuşken, baya da işime yarayan sql kod blogunu şuraya bırakayım dedim.

Olay başlıktan da anlaşıldığı gibi basit, birden fazla satır olarak dönen veriyi, tek kolonda birleştirip göstermek. Ben bir join işleminde ihtiyaç duyup bu yöntemi bulmuştum. Performans olarakta gözle görülür bir sorun yaşamadım. 

Öncelikle sorgu içerisinde 2 tane farklı sql fonksiyonu kullandım.
1.si STUFF fonksiyonu.
Bu fonksiyon replace ile benzer özelliklere sahip gibi gözükse de, ufak ve önemli bir farkı var. Stuff, belirli bir indexden başlayarak belirli karakter uzunluğundaki kısmı başka metin veya karakter ile değiştirmek için kullanılıyor. Replace’de ise bu özellikleri veremiyor ve hepsini değiştirebiliyoruz.

2.si ise for xml path fonksiyonu.
Bu fonksiyon ise en basit şekliyle tablo olarak gelen veriyi xml olarak çıktı almamıza yarıyor diyebiliriz. Fakat biz burada tek sutünda birleştirme kısmından faydalanıyoruz sadece. Daha sonra da stuff ile kendi istediğimiz şekilde düzenleyip çıktımızı almış oluyoruz.

Kısa bilgilerden sonra örnek kod blogumu da verebilirim.

Mutlu ve bugsız günler.

Genel olarak web üzerine yoğunlaşan, gaza gelmek için müzik dinleyen, amatör olarak resim çekmeye çalışan, bir yandan özel bir şirkette çalışıp, diğer yandan da okumaya devam eden sıradan bir ölümlü. He bide buraların sahibi.

Leave a reply:

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.