SQL İle Tüm Kayıtları Tek Satırda Birleştirme Yöntemi
Bu makalemizde benim ilk defa ihtiyaç duyduğum bir şeyi sizlerle paylaşmak istiyorum programlama tarafında çok basit bir şekilde join metod’ları ile 1’den fazla kaydın aralarında ayraç konularak birleştirilmesi sağlanabiliyorken sql’de ne yazıkki direk olarak bu işi gören fonksiyon yok.
SQL İle Tüm Kayıtları Tek Satırda Birleştirme Yöntemi
Sql’de birleştirme işlemi için sizlerle paylaşmış olduğum alttaki kodu deneyerek direk olarak birden fazla kaydın aralarında virgül ayracı konularak tek satırda birleştirildiğini görebilirsiniz.
Örnek
SQL
CREATE TABLE mytable (id int identity(1,1),
PersonID int, Unit varchar(10))
INSERT INTO mytable VALUES (1,'Che')
INSERT INTO mytable VALUES (1,'Mat')
INSERT INTO mytable VALUES (1,'Phy')
INSERT INTO mytable VALUES (1,'a')
INSERT INTO mytable VALUES (1,'s')
INSERT INTO mytable VALUES (1,'d')
INSERT INTO mytable VALUES (1,'p')
INSERT INTO mytable VALUES (1,'o')
INSERT INTO mytable VALUES (1,'m')
INSERT INTO mytable VALUES (1,'aa')
INSERT INTO mytable VALUES (1,'ss')
INSERT INTO mytable VALUES (1,'dd')
INSERT INTO mytable VALUES (1,'f')
INSERT INTO mytable VALUES (1,'g')
INSERT INTO mytable VALUES (1,'h')
INSERT INTO mytable VALUES (1,'ff')
INSERT INTO mytable VALUES (1,'gg')
INSERT INTO mytable VALUES (1,'hh')
INSERT INTO mytable VALUES (2,'Che2')
INSERT INTO mytable VALUES (2,'Mat2')
INSERT INTO mytable VALUES (2,'Phy2')
INSERT INTO mytable VALUES (3,'Phy3')
SELECT t1.PersonID,
Units =REPLACE(
(SELECT Unit AS [data()]
FROM mytable t2
WHERE t2.PersonID = t1.PersonID
ORDER BY Unit
FOR XML PATH('') ), ' ',
',')
FROM mytable t1
GROUP BY PersonID ;
DROP TABLE mytable
Sonuç
PersonId | Units |
---|---|
1 | a,aa,Che,d,dd,f,ff,g,gg,h,hh,m,Mat,o,p,Phy,s,ss |
2 | Che2,Mat2,Phy2 |
3 | Phy3 |
Hocam kolay gelsin. C# form uygulamasında localdatabase den veri çekiyorum.
YanıtlaSilÇektiğim şekil aşağıda;
KayitNo Gönderiliği Yer Şehir Posta Ücreti
1 Ankara Milli Eğitim Ankara 5
2 İstanbul Milli Eğitim İstanbul 3
3 Ankara Milli Eğitim Ankara 5
Yapmak isteğim ise;
KayitNo Gönderiliği Yer Şehir Posta Ücreti
1, 3 Ankara Milli Eğitim Ankara 5
2 İstanbul Milli Eğitim İstanbul 3
Gönderilen Yer, Şehir ve Ücreti aynı olanları grouplandırıp tek satırda göstermek, bunu yaparken KayıtNo daki verileri aynı satıra yanyana yazmak..