Estoy encontrando una manera de agregar cadenas de diferentes filas en una sola fila. Estoy buscando hacer esto en muchos lugares diferentes, por lo que sería bueno tener una función para facilitar esto. He probado soluciones usando COALESCEy FOR XML, pero simplemente no me sirven.
La agregación de cadenas haría algo como esto:
id | Name Result: id | Names
-- - ---- -- - -----
1 | Matt 1 | Matt, Rocks
1 | Rocks 2 | Stylus
2 | Stylus
He echado un vistazo a las funciones agregadas definidas por CLR como reemplazo de COALESCEy FOR XML, pero aparentemente SQL Azure no es compatible con cosas definidas por CLR, lo cual es una molestia para mí porque sé que poder usarlo resolvería una gran cantidad de problemas para mi.
¿Existe alguna solución alternativa o un método igualmente óptimo (que podría no ser tan óptimo como CLR, pero bueno , tomaré lo que pueda obtener) que pueda usar para agregar mis cosas?
for xmlmuestra un uso del 25% en términos de rendimiento de la consulta (¡la mayor parte de la consulta!)
for xml pathconsulta. Algunos más rápidos que otros. Podría depender de sus datos, pero los que usan distinctson, en mi experiencia, más lentos que los que usan group by. Y si está utilizando .value('.', nvarchar(max))para obtener los valores concatenados, debe cambiar eso a.value('./text()[1]', nvarchar(max))
for xmlte funciona?