Agrupar filas en una sola columna en SQL SERVER

Esto es gracias a Kevin Fairchild y a Ben y por supuesto a Stackoverflow.

Aquí esta la consulta para dejar los resultados de una varias filas en una sola columna... o sea como un group by de una columna de texto, y lo que hace es hacerle una concadenación:

Ejemplo siguiente: Una persona tiene varias direcciones de correo electronico, pero deseo agruparlas de tal forma que me aparezca así:
Persona   Emails
1             mail@gmail.com; mail2@hotmail.com; mail3@yahoo.com
...            ...




SELECT idpersona, STUFF((SELECT '; ' + email FROM direcciones WHERE PERDIR.idpersona = direcciones.idpersona FOR XML PATH ('') ),1,2,'') 'direccion' FROM direcciones PERDIR
where idpersona in
(
1,2,3,4,5
)
GROUP BY idpersona

Como se dan cuenta


Sean felices! :) Y sientanse libres de opinar ;)

2 comentarios:

  1. Hola buenos dias. Hay forma de incluir un array en una consulta Sqlite? tengo este codigo y siempre me arroja la ultima posicion del array.


    var selectStmtBB:SQLStatement = new SQLStatement();
    selectStmtBB.sqlConnection = conn;

    selectStmtBB.text = "SELECT * FROM Contenido WHERE Id="+newArray[iA]
    for(var iB:int = 0; iB < newArray.length; iB++){
    trace("Entrando a iB y su resultado es:"+newArray[iA], newArray.length);}

    Hay otra forma de hacerlo?

    ResponderEliminar
    Respuestas
    1. Lamento no poder ayudarte, pero mi fuerte no es sqlite... >*

      Eliminar