2010-12-12 23 views

cevap

3

, değerlerinin virgülle ayrılmış bir listesini oluşturan SQL Server için bir toplu işlev. İşte

Title 
----------------- 
The Hobbit 
The Two Towers  --> The Hobbit, The Two Towers, Leaf by Niggle 
Leaf by Niggle 

benim uygulama görebilirsiniz: A SQL CLR user-defined aggregate - notes on creating and debugging

+0

Çok kullanışlıdır. Bende buna sahibim. OnuCSV'ye çağırdım ama bu ismi gerçekten sevmiyorum. Sen ne aradın? Daha iyi bir fikir var mı? –

+0

@PAUL Mansour Ben, "Concat" adlı birimi (* concatenate * için kısa) olarak adlandırdım, ancak bu mükemmel bir ad değil. –

+1

SQL Server'ın bazı ilginç dize birleştirme performansı vardır. Burada, select @var = @ var + column' stili SQL ve .NET 'StringBuilder' kullanılarak kullanıcı tanımlı bir toplama arasında bazı performans testleri vardır: [graphs] (http://imgur.com/a/MRcha) SQL-based Toplam dize uzunluğu 500k karakterin üzerine çıktığında, concat dramatik olarak yavaşlar. – geofftnz

1

Evet. Oracle'da, Oracle'da bulunmadığı için bir tür group_concat uyguladım. Virgülle sınırlayıcı dizelerle basit bir uyum sağlayan birkaç farklı sürüm yaptım. Bir başkası aynı, sadece sıralanmış. Ve virgül kullanmayan başka bir karakter var, ama özel bir karakter, sonuçların kendileri de virgül de içerebiliyorsa sonuçlar daha kolay işlenebiliyor.

1
  1. Ağırlıklı Ortalama

  2. PercentAcross - Bu X. toplamına bölünmesiyle elde koşul doğru olduğunda X toplamı olan

İlgili konular