Estoy tratando de migrar una aplicación basada en MySQL a Microsoft SQL Server 2005 (no por elección, pero así es la vida).Simulando la función group_concat MySQL en Microsoft SQL Server 2005?
En la aplicación original, que utiliza declaraciones que cumplen casi por completo ANSI-SQL, con una excepción importante - hemos utilizado la función de MySQL group_concat
con bastante frecuencia.
group_concat
, por cierto, hace esto: dada una tabla de, por ejemplo, los nombres de los empleados y proyectos ...
SELECT empName, projID FROM project_members;
devuelve:
ANDY | A100
ANDY | B391
ANDY | X010
TOM | A100
TOM | A510
... y aquí es lo que conseguir con GROUP_CONCAT:
SELECT
empName, group_concat(projID SEPARATOR '/')
FROM
project_members
GROUP BY
empName;
devuelve:
ANDY | A100/B391/X010
TOM | A100/A510
Entonces, lo que me gustaría saber es: ¿es posible escribir, por ejemplo, una función definida por el usuario en SQL Server que emule la funcionalidad de group_concat
?
que casi no tienen experiencia en el uso UDF, procedimientos almacenados, ni nada de eso, sólo hacia arriba SQL, así que por favor errar en el lado de demasiada explicación :)
Un par de enlaces útiles: http://www.postgresonline.com/journal/archives/191-stringagg.html y http://consultingblogs.emc.com/jamiethomson/archive/2009/07/16/string -aggregation-in-t-sql-amp-pl-sql.aspx – bernhof
posible duplicado de [¿Cómo puedo crear una lista separada por comas usando una consulta SQL?] (http://stackoverflow.com/questions/1817985/how -do-i-create-a-comma-separated-list-using-a-sql-query) - esa publicación es más amplia así que elegiría esa como canonical – TMS
posible duplicación de [grupo SQL \ _concat función en SQL Server] (http://stackoverflow.com/questions/8868604/sql-group-concat-function-in-sql-server) – Trikaldarshi