sql >> Database teknologi >  >> RDS >> Sqlserver

SQL-forespørgsel - Sammenkædning af resultater i én streng

Hvis du er på SQL Server 2005 eller nyere, kan du bruge denne TIL XML-STI &TING trick:

DECLARE @CodeNameString varchar(100)

SELECT 
   @CodeNameString = STUFF( (SELECT ',' + CodeName 
                             FROM dbo.AccountCodes 
                             ORDER BY Sort
                             FOR XML PATH('')), 
                            1, 1, '')

FOR XML PATH('') kæder dybest set dine strenge sammen til ét langt XML-resultat (noget som ,code1,code2,code3 osv.) og STUFF sætter et "intet"-tegn ved det første tegn, f.eks. sletter det "overflødige" første komma, for at give dig det resultat, du sandsynligvis leder efter.

OPDATERING: OK - jeg forstår kommentarerne - hvis din tekst i databasetabellen allerede indeholder tegn som < , > eller & , derefter min nuværende løsning vil faktisk kode dem til < , > , og & .

Hvis du har et problem med den XML-kodning - så ja, du skal se på løsningen foreslået af @KM, som også fungerer for disse tegn. Et advarselsord fra mig:denne tilgang er meget mere ressource- og bearbejdningsintensiv - bare så du ved det.



  1. Præstationstestmetoder:Opdagelse af en ny måde

  2. Rette "Konvertering mislykkedes ved konvertering af varchar-værdien" Når du prøver at sammenkæde i SQL Server

  3. ORACLE - ORA-01843:ikke en gyldig måned

  4. Opret en dato fra dag måned og år med T-SQL