2010-12-12 17 views

Odpowiedz

3

Funkcja agregująca dla SQL Server, która generuje rozdzielaną przecinkami listę wartości.

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

Oto moja realizacja: A SQL CLR user-defined aggregate - notes on creating and debugging

+0

Bardzo przydatne. Też mam to. Nazwałem to Csc, ale nie podoba mi się to imię. Jak nazwałeś swoje? Jakieś lepsze pomysły? –

+0

@PAUL Mansour Nazwałem 'Concat' (skrót od * concatenate *), ale nie jest to również doskonałe imię. –

+1

Serwer SQL ma ciekawą wydajność łączenia ciągów. Oto kilka testów wydajności pomiędzy stylem 'select @var = @var + column' i zdefiniowanym przez użytkownika agregatem przy użyciu .NET' StringBuilder': [graphs] (http://imgur.com/a/MRcha) SQL-based concat staje się dramatycznie wolniejszy, gdy całkowita długość ciągu przekroczy 500k znaków. – geofftnz

1

Tak. W Oracle zaimplementowałem rodzaj group_concat, ponieważ jest niedostępny w Oracle. Zrobiłem kilka różnych wersji, które robią proste konkatencje z ciągami przecinania przecinków. Inny robi to samo, tylko posortowane. I jest jeszcze jedna, która nie używa przecinka, ale specjalną postać, więc wyniki mogą być łatwiej przetwarzane, gdy same wartości mogą zawierać przecinki.

1
  1. średnia ważona

  2. PercentAcross - Jest to suma X gdzie warunek jest prawdziwy, podzielony przez sumę X.

Powiązane problemy