sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är meningen med SELECT ... FOR XML PATH(' '),1,1)?

Det finns ingen riktig teknik att lära sig här. Det är bara ett gulligt trick att sammanfoga flera rader med data till en enda sträng. Det är mer en udda användning av en funktion än en avsedd användning av XML formateringsfunktion.

SELECT ',' + ColumnName ... FOR XML PATH('')

genererar en uppsättning kommaseparerade värden, baserat på att kombinera flera rader med data från ColumnName kolumn. Det kommer att producera ett värde som ,abc,def,ghi,jkl .

STUFF(...,1,1,'')

Används sedan för att ta bort det inledande kommatecken som det föregående tricket genererade, se STUFF för detaljer om dess parametrar.

(Konstigt nog brukar många hänvisa till den här metoden för att generera en kommaseparerad uppsättning värden som "STUFF-metoden" trots STUFF bara ansvarar för en sista bit av trimning)



  1. execSQL:är bindargs bättre?

  2. Hitta en sträng genom att söka i alla tabeller i SQL Server

  3. Hur parallella planer startar – Del 4

  4. ClusterControl:Introduktion till New Query Monitor