2009-12-13 14 views
27

En SQLite puedo usar GROUP_CONCAT hacer:GROUP_CONCAT SQLite ordenar

1...A 
1...B 
1...C 
2...A 
2...B 
2...C 

1...C,B,A 
2...C,B,A 

pero el orden de la concatenación es al azar - de acuerdo a documentos.

que necesito para ordenar la salida de GROUP_CONCAT ser

1...A,B,C 
2...A,B,C 

¿Cómo puedo hacer esto?

Respuesta

54

¿No puede usar una subselección con la orden por cláusula in, y luego agrupar concat los valores?

Algo así como

SELECT ID, GROUP_CONCAT(Val) 
FROM (
    SELECT ID, Val 
    FROM YourTable 
    ORDER BY ID, Val 
    ) 
GROUP BY ID; 
+0

Gracias, que parece hacer el truco! – user230781

+0

http://stackoverflow.com/questions/9833091/using-order-by-caluse-inside-group-concat-function-in-sqlite – confucius

+6

Tenga en cuenta que esto ** no ** funcionará con MySQL. (Nadie dijo que sí, pero cometí el error de suponer que ese era el caso) –