Metodo 1:usando `String_AGG` (SQL Server 2017 e successivo)
Questo è l'approccio più semplice ed efficiente per le moderne versioni del server SQL:
`` `sql
Seleziona String_agg (yourcolumn, ',') come concatenatedValues
Dalla tua letable;
`` `
Sostituisci `yourtable` e` yourcolumn` con i nomi effettivi della tabella e della colonna. Ciò restituirà una singola riga con tutti i valori di `yourcolumn` concatenati in una singola stringa, separata da virgole.
Metodo 2:usando `per XML Path` (SQL Server 2016 e prima)
Per le versioni più vecchie di SQL Server, `per XML Path` fornisce una funzionalità simile:
`` `sql
Seleziona roba ((
Seleziona ',' + yourcolumn
Da te
Per il percorso XML ('')
), 1, 1, '') come vanici concatenati;
`` `
Questo metodo utilizza una sottoquery per concatenare i valori con le virgole e quindi la funzione "roba" rimuove la virgola principale.
Esempio:
Supponiamo che tu abbia un tavolo chiamato `Employees` con una colonna chiamata` Employeename`:
| Employeename |
| --- | --- |
| John Doe |
| Jane Smith |
| David Lee |
Utilizzando `String_Agg`:
`` `sql
Seleziona String_agg (Employeename, ') come Employeenames
Dai dipendenti;
`` `
Questo sarebbe tornato:
| Employeenames |
| --- | --- |
| John Doe, Jane Smith, David Lee |
Usando `per il percorso XML`:
`` `sql
Seleziona roba ((
Seleziona ',' + Employeename
Dai dipendenti
Per il percorso XML ('')
), 1, 1, '') come Employeenames;
`` `
Anche questo sarebbe tornato:
| Employeenames |
| --- | --- |
| John Doe, Jane Smith, David Lee |
Considerazioni importanti:
* Valori null: Entrambi i metodi gestiscono i valori `null` ignorandoli efficacemente. Se hai bisogno di rappresentare i valori `null` nella stringa concatenata (ad esempio, usando un marcatore speciale come" null "), dovrai aggiungere un'istruzione` caso "all'interno dell'aggregazione. Ad esempio, con `string_agg`:
`` `sql
Seleziona String_agg (caso quando EmployeAname è nullo quindi "null" else Exipenteename end ", come Employeenames
Dai dipendenti;
`` `
* Tipo di dati: Assicurati che il tipo di dati della colonna sia compatibile con la concatenazione delle stringhe. Se necessario, utilizzare `cast` o` converti` per convertire la colonna in un tipo di dati adatto (ad esempio, `varchar`).
* Performance: Per tabelle molto grandi, `String_AGG` è generalmente più performante di` per il percorso XML`.
Scegli il metodo appropriato per la versione SQL Server. `String_AGG` è l'opzione preferita e più leggibile se la versione SQL Server la supporta.
software © www.354353.com