2009-12-13 11 views
27

In Sqlite posso usare group_concat fare:group_concat Sqlite ordinare

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

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

ma l'ordine della concatenazione è casuale - secondo documenti.

ho bisogno di ordinare l'output di group_concat essere

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

Come posso fare questo?

risposta

54

Non è possibile utilizzare una sottoselezione con l'ordine per clausola in, quindi raggruppare concat i valori?

Qualcosa di simile

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

Grazie, che sembra fare il trucco! – user230781

+0

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

+6

Si noti che questo ** non ** funzionerà con MySQL. (Nessuno ha detto di averlo fatto, ma ho commesso l'errore di presumere che fosse così) –