Tem 7, 2018
808 Görüntülenme

SQL Server’da Satır Değerlerini Gruplayıp Tek Satırda Göstermek

Yazarı

Herkese merhaba,

Bu yazıda SQL Server’da satır değerlerinin gruplanıp tek satırda nasıl gösterileceği hakkında bilgilendirme yapacağım.  Ne demek istiyoruz örnek fotoğrafı inceleyerek görelim.

SQL Server'da Satır Değerlerini Gruplayıp Tek Satırda Göstermek

Yapacağımız işlem yukarıdaki gibi bir gruplama işlemidir. Bu işlemi aşağıdaki tabloyu kullanarak yapıyoruz.

SQL Server'da Satır Değerlerini Gruplayıp Tek Satırda Göstermek

Şimdi gelelim kodlara.

--Tablo oluşturma

CREATE TABLE Calisanlar(
DepartmanKodu INT,
CalisanAd NVARCHAR(100)
)

--Tabloya veri ekleme

INSERT INTO dbo.Calisanlar
        ( DepartmanKodu, CalisanAd )
VALUES  ( 10, -- DepartmanKodu - int
          N'Ali'  -- CalisanAd - nvarchar(100)
          )

INSERT INTO dbo.Calisanlar
        ( DepartmanKodu, CalisanAd )
VALUES  ( 10, -- DepartmanKodu - int
          N'Mehmet'  -- CalisanAd - nvarchar(100)
          )

INSERT INTO dbo.Calisanlar
        ( DepartmanKodu, CalisanAd )
VALUES  ( 10, -- DepartmanKodu - int
          N'Ahsen'  -- CalisanAd - nvarchar(100)
          )

INSERT INTO dbo.Calisanlar
        ( DepartmanKodu, CalisanAd )
VALUES  ( 10, -- DepartmanKodu - int
          N'Gül'  -- CalisanAd - nvarchar(100)
          )

INSERT INTO dbo.Calisanlar
        ( DepartmanKodu, CalisanAd )
VALUES  ( 20, -- DepartmanKodu - int
          N'Büşra'  -- CalisanAd - nvarchar(100)
          )

INSERT INTO dbo.Calisanlar
        ( DepartmanKodu, CalisanAd )
VALUES  ( 20, -- DepartmanKodu - int
          N'Kübra'  -- CalisanAd - nvarchar(100)
          )

INSERT INTO dbo.Calisanlar
        ( DepartmanKodu, CalisanAd )
VALUES  ( 30, -- DepartmanKodu - int
          N'Macit'  -- CalisanAd - nvarchar(100)
          )


INSERT INTO dbo.Calisanlar
        ( DepartmanKodu, CalisanAd )
VALUES  ( 30, -- DepartmanKodu - int
          N'Deniz'  -- CalisanAd - nvarchar(100)
          )

--Birinci Yöntem

SELECT C1.DepartmanKodu,
(
   SELECT C2.CalisanAd + ',' FROM dbo.Calisanlar C2
   WHERE C2.DepartmanKodu = C1.DepartmanKodu
   ORDER BY C2.CalisanAd
   FOR XML PATH('')
) AS Emp_Name
FROM dbo.Calisanlar C1
GROUP BY C1.DepartmanKodu

--İkinci Yöntem

SELECT DISTINCT C1.DepartmanKodu, Temp.CalisanAd
FROM dbo.Calisanlar C1 CROSS APPLY
(
   SELECT C2.CalisanAd + ',' FROM dbo.Calisanlar C2
   WHERE C2.DepartmanKodu = C1.DepartmanKodu
   ORDER BY C2.CalisanAd
   FOR XML PATH('')
) AS Temp (CalisanAd)

Burada iki adet yöntem var. Hangisi işinize gelirse.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

Makale kategorileri:
İleri Seviye SQL Server · Sql Server
http://inovatifkimyadergisi.com/

- SQL Server tarafında kendini ilerletmeye çalışırken bildiklerini sürekli başkalarına aktaran, yazılım dünyasında (C#, Java, Python vb.) kendini güncel tutmaya çalışan, araştırma yapmaktan bıkmayan, meraklı, bilginin üzerine bilgi katmaktan mutluluk duyan bir yazılım eğitmeni ve kod sever. - Grafik tasarım dünyasında Indesign'ı anlatacak kadar iyi kullanabilen, Photoshop ve Illustrator'e de orta düzey hakimiyeti bulunan, internet üzerinde online kimya dergisi kurmuş ve bunu yüzbinlerce kişiye ulaştırmayı başaran bir grafik sever. -WordPress tarafında 5 adet web sitesi kurmuş, bu sistemler üzerine çalışan bir WordPress sever. -Sosyal medya üzerinde okumalara ve araştırmalara devam eden, kendi kurmuş olduğu kimya dergisini daha çok kişiye nasıl ulaştırırım diye düşünen ve bu konuda SEO çalışmaları üzerine kafa yoran bir Sosyal Medya sever. Kısaca çok çalışmayı seven, azimli biriyim.

Yorumlar SQL Server’da Satır Değerlerini Gruplayıp Tek Satırda Göstermek

  • Helal olsun hocam çok güzel yararlı bir site, buradan çok şey öğrenirim Sql server ve C# alanım, bu yararlı siteyi yaptığın için teşekkür ederim seninle tanışmayı çok isterdim gerçekten çok şeyler öğrenirdim senden (bende bir meraklı, sabırlı ve öğrenmeyi seven biri olarak…)

    Bilal 28 Mart 2019 17:38 Cevapla

Yorum yap

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

WP Twitter Auto Publish Powered By : XYZScripts.com