varias una tablas subconsultas solo registros filas cómo concatenar con columna campos campo sql mysql string aggregate concatenation

tablas - concatenar varias filas en una columna sql server 2008



¿Cómo usar GROUP BY para concatenar cadenas en MySQL? (6)

Básicamente la pregunta es cómo salir de esto:

id string 1 A 1 B 2 C

a esto:

id string 1 A B 2 C


Grandes respuestas. También tuve un problema con NULLS y logré resolverlo al incluir un COALESCE dentro de GROUP_CONCAT. Ejemplo como sigue:

SELECT id, GROUP_CONCAT(COALESCE(string,'''') SEPARATOR '' '') FROM table GROUP BY id;

Espero que esto ayude a alguien más



SELECT id, GROUP_CONCAT(CAST(string as CHAR)) FROM table GROUP BY id

Te dará una cadena delimitada por comas



SELECT id, GROUP_CONCAT(string SEPARATOR '' '') FROM table GROUP BY id;

: - En MySQL, puede obtener los valores concatenados de las combinaciones de expresiones. Para eliminar valores duplicados, use la cláusula DISTINCT . Para ordenar los valores en el resultado, use la cláusula ORDER BY. Para ordenar en orden inverso , agregue la palabra clave DESC (descendente) al nombre de la columna que está ordenando en la cláusula ORDER BY. El valor predeterminado es orden ascendente; esto puede especificarse explícitamente usando la palabra clave ASC. El separador predeterminado entre los valores de un grupo es una coma (","). Para especificar un separador explícitamente, use SEPARATOR seguido del valor literal de cadena que se debe insertar entre los valores de grupo. Para eliminar el separador por completo, especifique SEPARATOR '''' .

GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val])

O

mysql> SELECT student_name, -> GROUP_CONCAT(DISTINCT test_score -> ORDER BY test_score DESC SEPARATOR '' '') -> FROM student -> GROUP BY student_name;


SET group_concat_max_len=100000000