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

Hvad er meningen med SELECT ... FOR XML PATH(' '),1,1)?

Der er ingen rigtig teknik at lære her. Det er bare et sødt trick at sammenkæde flere rækker af data i en enkelt streng. Det er mere en finurlig brug af en funktion end en tilsigtet brug af XML formateringsfunktion.

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

genererer et sæt kommaseparerede værdier, baseret på at kombinere flere rækker af data fra ColumnName kolonne. Det vil producere en værdi som ,abc,def,ghi,jkl .

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

Bruges derefter til at fjerne det indledende komma, som det forrige trick genererede, se STUFF for detaljer om dens parametre.

(Mærkeligt nok har mange mennesker en tendens til at henvise til denne metode til at generere et kommasepareret sæt værdier som "STUFF-metoden" på trods af STUFF kun at være ansvarlig for en sidste smule trimning)



  1. SQLite3. Undtagelse:databasediskbilledet er forkert udformet

  2. Postgres funktion NULL værdi for række, der refererer til NY

  3. Hvad er det korrekte indeks for at forespørge strukturer i arrays i Postgres jsonb?

  4. Optimal måde at SLETTE specificerede rækker fra Oracle