SQL server'da birden çok satırdaki metin tek bir metin dizesinde nasıl birleştirilir?

Üç satırlı, isimleri tutan bir veritabanı tablosu düşünün:

Peter
Paul
Mary

Bunu tek bir Peter, Paul, Mary dizisine dönüştürmenin kolay bir yolu var mı?

MySQL'de, birden fazla satırdaki değerleri birleştirmenize olanak tanıyan GROUP_CONCAT() adlı bir işlev vardır. Örnek:

SELECT 1 AS a, GROUP_CONCAT(name ORDER BY name ASC SEPARATOR ', ') AS people 
FROM users 
WHERE id IN (1,2,3) 
GROUP BY a
Yorumlar (4)

Bunu SQL Server'da yapmanın bir yolu, tablo içeriğini XML olarak döndürmek (XML raw için), sonucu bir dizeye dönüştürmek ve ardından etiketleri ", " ile değiştirmek olabilir.

Yorumlar (0)

Veritabanı sağlayıcınıza bağlıdır. MySQL'de concat_ws vardır. MS SQL Server bunu istemci uygulamanızda yapmanızı bekler.

Güncelleme: Bunu harici bir prosedürde veya UDF'de, belki bir imleç kullanarak veya CLR kodunu çağırarak da yapabilirsiniz.

Yorumlar (1)