2010-12-12 17 views

risposta

3

Una funzione di aggregazione per SQL Server che produce un elenco di valori separati da virgola.

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

Ecco la mia realizzazione: A SQL CLR user-defined aggregate - notes on creating and debugging

+0

Molto utile. Anch'io ho questo. L'ho chiamato a CSV, ma non mi piace molto quel nome. Come hai chiamato il tuo? Qualche idea migliore? –

+0

@PAUL Mansour I ha chiamato il mio "Concat" (abbreviazione di * concatenate *), ma non è nemmeno un nome perfetto. –

+1

SQL Server presenta alcune prestazioni di concatenazione di stringhe interessanti. Ecco alcuni test delle prestazioni tra lo stile 'select @var = @var + column' e un aggregato definito dall'utente utilizzando un .NET' StringBuilder': [graphs] (http://imgur.com/a/MRcha) basato su SQL concat diventa molto più lento una volta che la lunghezza totale della stringa supera i 500 caratteri. – geofftnz

1

Sì. In Oracle ho implementato un tipo di group_concat perché non è disponibile in Oracle. Ho creato un paio di versioni diverse che eseguono un concat semplice con le stringhe delimitate da virgole. Un altro fa lo stesso, solo in ordine. E ce n'è un altro che non usa una virgola, ma un carattere speciale in modo che i risultati possano essere elaborati più facilmente quando i valori stessi potrebbero contenere anche una virgola.

1
  1. calibrati media

  2. PercentAcross - Questa è la somma di X in cui una condizione è vera, diviso per la somma di X.

Problemi correlati