sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cuál es el significado de SELECT ... FOR XML PATH(' '),1,1)?

No hay una técnica real para aprender aquí. Es solo un lindo truco para concatenar varias filas de datos en una sola cadena. Es más un uso peculiar de una función que un uso previsto del XML función de formato.

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

genera un conjunto de valores separados por comas, basados ​​en la combinación de varias filas de datos de ColumnName columna. Producirá un valor como ,abc,def,ghi,jkl .

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

Luego se usa para eliminar la coma inicial que generó el truco anterior, ver STUFF para obtener detalles sobre sus parámetros.

(Extrañamente, mucha gente tiende a referirse a este método de generar un conjunto de valores separados por comas como "el método STUFF" a pesar de que STUFF solo siendo responsable de un poco de recorte final)